Premise
There was a conversation in the Neo-Interactives Discord server regarding different styles of pausing and pacing in a sentence, and the use of dashes came up.
This got me curious: Is there a recommended practice for adding dashes for pauses, similar to how there are recommendations for different HTML tags, when writing with accessibility in mind?
Results Summary
Assuming default settings, the case with the best handling was the EN-dash, with spaces added on either side.
Testing Environment
So I did a number of tests; 49, to be exact.
I had a sentence:
The flower, a favorite of Natalie’s, was ready to bloom this year.
The control case (or case one) was written with commas, as above. For the next 6 cases, I swapped commas out with the following:
- “Common” dash (or
-
), with no spaces on either side. - Common dash, with spaces added on either side.
- EN-dash (or
–
), with no spaces on either side. - EN-dash, with spaces added on either side.
- EM-dash (or
—
), with no spaces on either side. - EM-dash, with spaces added on either side.
For each of these 7 cases, I tested the following screen reader configurations:
- Orca on Linux Mint with Firefox
- Orca on Linux Mint with Chrome
- Talkback on Android with Firefox
- Talkback on Android with Chrome
- NVDA on Windows with Firefox
- NVDA on Windows with Chrome
- VoiceOver on iPhone with Safari
Unlike my previous screen reader experiments, the choice of browser did not seem to change the results, so the test cases can be simplified to the following:
- Orca on Linux Mint
- Talkback on Android
- NVDA on Windows
- VoiceOver on iPhone
Disclaimers
First Disclaimer: I am aware that a user has the ability to change which punctuation elements are announced by a screen reader, but I was mostly interested in how default settings handled these cases.
Second Disclaimer: I am aware that most screen readers are configured to read at high rates, and my own is quite fast (though maybe half the speed that I’ve heard from most YouTubers in the blind community). There is an argument to be made that pauses are not audible, but I believe I noticed the spoken tones following different sequences when pauses were handled and not skipped, so there is still some information getting across to the user.
Details of Results
Orca
Orca is rather verbose. Commas create pauses, but all dashes are announced. however, only EN-dashes and EM-dashes (with or without spaces) create pauses before announcement. Meanwhile, the common dash had no such pause before its announcement.
Talkback and VoiceOver
Talkback and VoiceOver have identical behavior, in this regard.
Pauses are created with commas, common dashes (with spaces), EN-dashes (with spaces), and EM-dashes (with or without spaces). A common dash or EN-dash is completely ignored, if spaces are missing on either side.
NVDA
With NVDA, pauses are created with commas, and EN-dashes. A common dash can create a pause, too, but only when spaces are placed on either side. If these spaces are missing, then a common dash is ignored.
Something that took me by surprise was hearing NVDA completely ignore all EM-dashes, regardless of spacing.
Test for Yourself
If you would like to test all 7 cases with your own screen reader configuration, then I included them below.
Test begins.
- Comma case. The flower, a favorite of Natalie’s, was ready to bloom this year.
- Common dash no space case. The flower-a favorite of Natalie’s-was ready to bloom this year.
- Common dash with space case. The flower - a favorite of Natalie’s - was ready to bloom this year.
- EN dash no space case. The flower–a favorite of Natalie’s–was ready to bloom this year.
- EN dash with space case. The flower – a favorite of Natalie’s – was ready to bloom this year.
- EM dash no space case. The flower—a favorite of Natalie’s—was ready to bloom this year.
- EM dash with space case. The flower — a favorite of Natalie’s — was ready to bloom this year.
End of test.