Don’t send (just) a screenshot
When collaborating on code, reporting bugs, or doing pretty much anything that involves sharing textual information with others, screenshots are just about the worst option available.
Do this …
Alice: Hey, I ran into this error while trying to use your new library. Do you have any idea what I did wrong?
Traceback (most recent call last):
File "/tmp/gen.py", line 9, in <module>
main()
~~~~^^
File "/tmp/gen.py", line 5, in main
with open(source_path, mode="rt", encoding="utf-8") as source:
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 9] Bad file descriptor
… not this
Bob: Hey, I ran into this error while trying to your your new library. Do you have any idea what I did wrong?
Why are screenshots bad?
There are a bunch of drawbacks to screenshots that can be avoided by sending plain text. These are the biggest ones.
Accessibility
Well-made software generally allows users to customize how text is presented: its size, shape, and color can all be tweaked to make it as legible as possible. Images of text impose the sender’s legibility preferences on the receiver. That low-contrast editor theme may be great for one person, but impossible to read for another.
Beyond simple legibility, screen readers struggle with images. There’s a good reason alt text is so strongly encouraged for websites. If your recipient might possibly be relying on a screen reader or similar tech, don’t bother sending an image. Sure, you could populate the alt text, but at that point, why not just send the original text?
Tooling
While image support may be pretty robust for modern instant messaging services, email clients are not guaranteed to support images, and many development tools have no image support whatsoever. If you have easy access to the text, why not pass on that easy access to your intended recipient(s)?
Transcription accuracy
When an image is used to transmit text, the recipient must often
transcribe that text. This is a flawed process: misreading the image or
making a typo are both easy mistakes to make. Additionally, some glyphs
are difficult, and sometimes impossible, to distinguish. Consider the
Latin “p” (U+0070) and the Cyrillic “р”
(U+0440). In many fonts that include both characters1, these will look identical. In turn,
the recipient of a screenshot is very likely to incorrectly transcribe
these as the same character. Similarly, proportional fonts may make it
difficult to distinguish between two apostrophes and double quotes2. Only by sending the actual text (or
a clumsy explanation alongside the screenshot) is this difference
accurately conveyed.
Data size inflation
Plain text will almost always take less data to transmit than screenshots of that same text, even with extremely compressed images. This difference is often masked by high-speed connections, where the difference in transmission times is best measured in microseconds. However, when working with slow connections, the difference between downloading text and a screenshot of that same text quickly becomes a nuisance.
When are screenshots appropriate?
Screenshots are a tool, and like any other tool, they have their time and place: they’re great for conveying visual information like UI layouts, rendering bugs, colors, etc.
On this site, “p” and “р” are distinguishable because Equity, used for most body text, does not include the Russian er character.↩︎
I have relied on the similarity between two apostrophes and double quotes to present users with visually-correct information. COSMOS 4 disallows double quotes in some places, so '' (two apostrophes) must be substituted in where " (a double quote) would normally go. This distinction is meaningful, and nearly invisible in screenshots of that application.↩︎