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 use 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 plan 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 websites1. 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 often must 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, these will look identical. In turn, the recipient of a screenshot is very likely to incorrectly transcribe these 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.
-
I'm aware that the screenshot near the top of this page does not have alt text at the time of writing. This is an unfortunate limitation of prose.sh's interpretation of GitHub-flavored markdown. ↩︎
-
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 '' (
''
) must be substituted in where " ("
) would normally go. This distinction is meaningful, and nearly invisible in screenshots of that application. ↩︎