Unfortunately, screen readers don’t always read what’s on the screen. Sometimes that’s OK, but sometimes that’s really bad. If a screen reader fails to read important text, the user will fail to understand it. It’s not the user’s fault, and it’s usually not the web developer’s fault either. These are problems with the screen reader software itself. It’s high time for screen reader programmers to fix these problems, and to get some consistency across brands of screen readers, because right now it’s kind of a mess… and I’m just talking about text, typographic symbols, and static HTML here: the things that screen readers are supposed to excel at reading.
- Part 1 of this series focuses on the way screen readers read (or don’t read) punctuation and typographic symbols.
- Part 2 will focus on the problems with inline semantic markup.
- Part 3 will focus on problems with pronunciation, including common content — like telephone numbers, dates, and abbreviations — as well as uncommon or new words, or words with more than one possible pronunciation.
You Can’t Count on Screen Readers to Read Most Punctuation or Typographic Symbols
The way screen readers treat punctuation is incredibly inconsistent from one screen reader to another, and there isn’t a single screen reader on the market that can reliably handle the full set of punctuation marks and typographical symbols that you might want to use. If you type an HTML document using all the punctuation marks available on your keyboard and listen to a screen reader read the document in a web browser, you’ll hear only some of the punctuation and characters read aloud to you. If you use HTML entities or other special characters, you’ll hear even less.
This is partly (but not entirely) by design. Screen reader manufacturers have understandably decided that most users don’t need to hear every comma, period, and apostrophe in a document. Screen readers will pause at commas rather than say “comma,” and screen readers will say “don’t” rather than say “don apostrophe t.” Those are reasonable decisions. But every screen reader has major flaws in reading some aspect of typographical symbols.
Here’s a sample of some of the problems:
- The NVDA screen reader, for instance, doesn’t read hardly any typographical symbols at all in its default configuration, making common symbols like asterisks and plus symbols essentially useless to NVDA users. This means web developers can’t use an asterisk to denote a required field on a form, unless they supplement the asterisk with some other NVDA-friendly method.
- Similarly, NVDA ignores the plus and equals symbols. It says “five two seven” when it should say “five plus two equals seven,” making it hard — or impossible — to write basic math expressions.
- JAWS reads the plus symbol correctly, but not the minus symbol. Jaws incorrectly says “five dash two” when it should say “five minus two,” even when using the HTML entity − (not a regular dash) to specify the minus symbol.
- JAWS also reads the “less than or equal to” symbol incorrectly. JAWS says “equals,” which is wrong. Between NVDA and JAWS, web authors who want to write even the most basic of arithmetic expressions — one plus one, or one minus one, for example — can’t count on screen readers to read them right. That’s a serious limitation.
- On the Mac side, VoiceOver doesn’t inform users about quotation marks, parentheses, or dashes, making it so users don’t know when quotation or parenthetical phrases begin or end. To its credit, VoiceOver does pause briefly for these elements, but users won’t know the difference between a dash, parentheses, or a quotation, because all pauses sound the same, even though the reasons for the pauses are all different, and should convey different semantic meanings.
These are just some of the examples of where things can go wrong when trying to use basic punctuation or typographic symbols to communicate on the web. These are significant flaws in the most basic of screen reader functions: reading what’s on the screen. There is too much potential for screen readers to miss out on the information that is right there in front of them. I’m not talking about anything complicated here. I’m talking about the text and symbols right there on your keyboard, and the ones available in HTML entities and other standard character sets.
It’s time for screen reader manufacturers to step up to the plate and design software that does a better job of actually reading what’s on the screen
User Verbosity Preferences versus Default Settings
Screen readers have verbosity settings that let users choose how much punctuation to hear. I’m not saying to take away user preferences. Let users choose their own verbosity level, but the default level needs to be high enough for average users to get the information communicated in typical web content by the authors. Authors need to know that they can trust screen readers to read the text that the authors write, and right now, author’s can’t trust screen readers to do that.
There are certainly reasons for users to ignore some kinds of punctuation under some circumstances. It would be annoying to most users to hear every single comma or period in every sentence sentence, for example. And sometimes users would rather hear a pause than hear every opening and closing parenthesis. That’s understandable. By pausing instead of reading all punctuation, screen readers sound more natural and human-like, and that can be a good thing.
But when the punctuation or typographic symbols convey important meaning, users need to be able to hear the punctuation and symbols, or the meaning will be lost. At the extreme end, blind web developers probably need to hear all the punctuation when reading HTML or JavaScript code, for example. They may want to toggle the verbosity setting to “all punctuation” when reading code, and use a less verbose mode for reading prose. There’s no need to force a high verbosity level on all users.
Even so, the verbosity probably should not be set so low by default that the screen reader can’t even read a URL correctly (for example, by not reading the colon or slashes), or convey even the most basic punctuation to readers. NVDA’s settings, in particular, are so sparse that users hear almost no punctuation or symbols at all. That doesn’t seem right, and it leaves authors with a no-win choice of either stripping the document of nearly all punctuation for all users, or writing out everything in words instead of punctuation (like “1 plus 1 equals 2” instead of “1+1=2”), or simply saying “I don’t care what the screen reader does. It should read the text, but it doesn’t. It’s not my fault. I’m not responsible, because I did my part by putting the text in there.”
Screen Reader Flaws Breed Apathy
Screen reader flaws breed apathy among web developers and content writers. Such apathy is counter-productive to the goal of creating an accessible web. Too many people will just assume that screen readers are always a little bit broken, and not bother to investigate workarounds, especially for the simplest tasks, like reading the text and punctuation on the screen. No one should have to wonder if a screen reader will read text.
Testing How Screen Readers Read Typographical Symbols
I knew that screen readers were inconsistent in the way they handled typographical symbols, but I didn’t know all of the intricate details of exactly what they did or didn’t read, so I set up some tests.
Versions Tested:
- NVDA 2013.3, tested with Firefox 26.0 on Windows 7
- JAWS 15.0.4203, tested with Internet Explorer 9.0.23 on Windows 7 and Internet Explorer 11 on Windows 8
- VoiceOver OSX 10.9.1, tested with Safari 7.0 (9537.71)
In all cases, the screen reader language was set to English. The doctype was HTML 5. The character encoding was UTF-8.
I didn’t test every possible typographical character possible; not even close. I chose from among the more common characters; characters that most English-speaking authors would expect screen readers to get right. A more comprehensive test would involve different languages, all the characters in UTF-8, and all the HTML entities. I’m not going to be that thorough. I admit I sympathize with screen reader manufacturers when considering the scale of the task once you consider all possible character sets, but with just this limited set of common characters, the results are still disappointing.
Findings:
JAWS Bugs
First of all, it’s time to fix the bugs, in JAWS in particular. How is it that there are still bugs in screen reader software for reading basic text and typographical symbols? That’s something screen readers should have perfected long, long ago.
Symbol | Markup | JAWS says | JAWS should say |
---|---|---|---|
– | − | “dash” | minus |
? | ≤ | “equals” | less than or equal to |
? | ≥ | “equals” | greater than or equal to |
~ | ≈ | “tilde” | approximately equals |
? | ≠ | “question mark” | not equals |
Safe Characters (all screen readers read the characters out loud):
If you need the typographical symbols to be read out loud explicitly, of the 91 symbols tested, the only “safe” symbols to use across all screen readers tested in their default configurations are these 17:
- @ (the at symbol)
- & (ampersand, written either as & or & in the markup)
- / (slash)
- © (copyright, written as ©)
- ® (registered, written as ®)
- ™ (trademark, written as ™)
- ¶ (paragraph, written as ¶)
- • (bullet, written as •)
- $ (dollar)
- € (Euro, written as €)
- £ (British pound, written as £)
- ¥ (Yen, written as ¥)
- % (percent)
- ½ (one half, written as ½)
- ¼ (one fourth, written as ¼)
- ¾ (three fourths, written as ¾)
- ° (degrees, written as °)
Everything else fails in at least one of the three screen readers tested. When I say it “fails,” I mean that the symbol itself isn’t read out loud. Sometimes that’s OK, but often it is not OK.
Safe, But Sometimes Unspoken Characters (often accompanied by a pause or voice inflection)
Just to be clear: just because a screen reader doesn’t read something out loud doesn’t always mean you can’t use it. It just means that the meaning of that symbol will not be communicated explicitly. If the meaning of the symbol is essential to your message, be very cautious in how you use the symbols. If the meaning of a symbol is only tangential or not essential to the message, you have a bit more freedom.
You can use such punctuation as periods, commas, semi-colons, colons, parentheses, brackets, quotation marks, dashes, exclamation points, question marks and some others. JAWS is the most likely of the screen readers to read these kinds of punctuation marks. NVDA is the least likely. Across all three screen readers, most of these punctuation marks will generate pauses, or voice inflections in the case of exclamation marks and question marks. Just don’t expect the screen reader to actually read most of these punctuation marks themselves out loud unless the user pauses and listens character by character, or unless the user changes the default settings of the screen reader.
To give a specific example, if you’re OK with the user simply hearing a pause at the beginning and end of a quotation, you’ll be fine. But if you need the user to know that the reason for the pause is because there are quotation marks, you’re out of luck in all screen readers except JAWS.
Unread Characters (meaning that at least one screen reader will not read the character out loud):
- ~ (tilde)
- ‘ (backtick)
- ! (exclamation mark)
- ¡ (inverted exclamation mark, written as ¡)
- # (pound sign)
- ^ (caret)
- * (asterisk)
- ( (left parenthesis)
- ) (right parenthesis)
- – (dash)
- — (m dash, written as —)
- — (double dash)
- – (n dash, written as –)
- _ (underscore)
- , (comma)
- . (period)
- … (pseudo ellipses, three periods)
- … (ellipses, written as …)
- \ (backslash)
- | (vertical bar)
- ? (question mark)
- ¿ (inverted question mark, written as ¿)
- ; (semi-colon)
- : (colon)
- ” (quotation mark)
- ” (quotation mark, written as ")
- ” (left double quotation mark, written as “)
- “ (right double quotation mark, written as ”)
- « (left double angle bracket, written as «)
- »; (right double angle bracket, written as »)
- ‹ (left single angle bracket, written as ‹)
- › (right single angle bracket, written as ›)
- ‘ (single quote, or apostrophe)
- ’ (right single quote, written as ’)
- ‘ (left single quote, written as ‘)
- { (left brace)
- } (right brace)
- [ (left bracket)
- ] (right bracket)
- § (section, written as §)
- · (small bullet, written as ·)
- † (dagger, written as †)
- ‡ (double dagger, written as ‡)
- ? (right arrow, written as →)
- ? (left arrow, written as ←)
- ? (up arrow, written as ↑)
- ? (down arrow, written as ↓)
- ? (horizontal arrow, written as ↔)
- ? (left double arrow, written as ⇐)
- ? (right double arrow, written as ⇒)
- ? (up double arrow, written as ⇑)
- ? (down double arrow, written as ⇓)
- ? (horizontal double arrow, written as ⇔)
- ? (spades, written as ♠)
- ? (clubs, written as ♣)
- ? (hearts, written as ♥)
- ? (diamonds, written as ♦)
- + (plus)
- – (minus, written as −)
- ± (plus or minus, written as ±)
- ÷ (divided by, written as ÷)
- × (multiplied by, written as ×)
- = (equals)
- ? (not equals, written as ≠)
- ? (approximately equals, written as ≈)
- ‰ (per mil, written as ‰)
- < (less than, written as <)
- > (greater than, written as >)
- ? (less than or equal to, written as ≤)
- ? (greater than or equal to, written as ≥)
- ? (prime, written as ′)
- ? (double prime, written as ″)
- ? (sum, written as ∑)
The least verbose of the screen readers tested was NVDA, by a large margin. If not for NVDA, the number of characters read out loud would be much higher. JAWS and VoiceOver have problems of their own though.
Here are the detailed tables showing which symbols were, or weren’t read by which screen readers.
Symbol | The character by itself | In Context | JAWS 15 | NVDA | VoiceOver |
---|---|---|---|---|---|
tilde | ~ | https:// www.website.com/ ~user |
By itself:
“tilde” In context:
“H T T P colon slash slash website dot com slash tilde user” |
By itself:
nothing In context:
“H T T P slash slash website dot com slash user” (NVDA does NOT mention the tilde or the colon.) |
By itself:
“tilde” In context:
“H T T P slash slash website dot com slash tilde user” (VoiceOver reads the tilde, but not the colon) |
backtick mark | ` | &id=?1? | By itself:
“grave” (the “a” is pronounced with an “ah” sound, like the “a” in “bravo”) In context:
“and I D equals grave one grave” |
By itself:
nothing In context: “and I D one” (NVDA does NOT pronounce the tick mark or the equals sign.) |
By itself:
“accent” In context:
“and I D equals one” (VoiceOver does NOT read the backtick.) |
exclamation mark | ! | This is exciting!
This is exciting. |
By itself:
“exclaim” In context:
JAWS does not change voice inflection at all. |
By itself:
nothing In context:
NVDA changes the inflection very slightly (almost imperceptibly) when there is an exclamation mark at the end of a sentence. |
By itself:
“exclaim” In context:
Nothing. VoiceOver does not change voice inflection at all when a sentence ends in an exclamation mark. |
inverted exclamation mark, typed as ¡ | ¡ | Intersante. ¡Ay caramba!
Intersante. Ay caramba. |
By itself:
“inverted exclaim” In context:
JAWS changes the inflection of the last word, but does not mention the inverted exclamation mark at the beginning. |
By itself:
nothing In context:
NVDA reads the exclamation with a different inflection, but does not mention the inverted exclamation mark at the beginning. |
By itself:
“inverted exclamation mark” In context:
VoiceOver does NOT change voice inflection. (It also does NOT change language, even though lang=”es” is added to the td tag. |
at symbol | @ | I have a message for @paul | By itself:
“at” In context:
“I have a message for at Paul” (But JAWS slurs the “at” and “Paul” together, so people might easily miss the “at”) |
By itself:
“at” In context:
“I have a message for at Paul” |
By itself:
“at” In context:
“I have a message for at Paul” |
pound/hash/number sign | # | I live at apartment #40 | By itself:
“number” In context:
I live at apartment number 40″ |
By itself:
nothing In context:
“I live at apartment 40” (NVDA does NOT read the number sign) |
By itself: “number” In context:
I live at apartment number 4 zero” |
caret | ^ | This is ^not the worst I’ve seen | By itself:
“caret” In context:
“This is caret not the worst I’ve seen” |
By itself:
nothing In context:
“This is not the worst I’ve seen (NVDA does NOT read the caret) |
By itself:
“caret” In context:
“This is caret not the worst I’ve seen” |
ampersand, typed as & | & | M&Ms
BB&T black & white |
By itself:
“and” In context:
|
By itself:
“and” In context:
|
By itself: “and” In context:
|
ampersand | & | M&Ms
BB&T black & white |
By itself:
“and” In context:
|
By itself:
“and” In context:
|
By itself:
“and” In context:
|
asterisk | * | Fields marked with * are required.
Name* |
By itself: “star” In context:
|
By itself: nothing In context:
|
By itself: “star” In context:
|
left parenthesis | ( | I am (understandably) excited. | By itself:
“left paren” In context:
“I am left paren understandably right paren excited” |
By itself:
nothing In context:
NVDA does not say anything, nor does it pause; it reads straight through |
By itself:
“left paren” In context:
VoiceOver pauses briefly for the opening and closing parentheses, but does not say anything. |
right parenthesis | ) | I am (understandably) excited. | By itself:
“right paren” In context:
“I am left paren understandably right paren excited” |
By itself:
nothing In context:
NVDA does not say anything, nor does it pause; it reads straight through |
By itself:
“right paren” In context:
VoiceOver pauses briefly for the opening and closing parentheses, but does not say anything. |
dash | – | blue-green.
This is — not unexpectedly — a parenthetical clause. |
By itself:
“dash” In context:
“blue dash green” “This is m dash not unexpectedly m dash a parenthetical clause.” |
By itself:
nothing In context:
NVDA does not say anything, nor does it pause; it reads straight through |
By itself:
“dash” In context:
“blue green”. VoiceOver does not read the dash. |
m dash, typed as — | — | This is also—not unexpectedly—a parenthetical clause. | By itself:
“m dash” In context:
“This is also m dash not unexpectedly m dash a parenthetical clause.” |
By itself:
nothing In context:
NVDA does not say anything, nor does it pause; it reads straight through |
By itself:
“m dash” In context:
VoiceOver pauses briefly for each of the m dashes, but does not say anything. |
n dash, typed as – | – | This is another – not unexpectedly – parenthetical clause.
This is another–not unexpectedly–parenthetical clause. |
By itself:
“n dash” In context:
“This is another n dash not unexpectedly n dash parenthetical clause.” |
By itself:
nothing In context:
NVDA does not say anything, nor does it pause; it reads straight through |
By itself:
“n dash” In context:
VoiceOver pauses briefly for each of the m dashes, without saying anything, but ONLY IF there are spaces between the words and the dashes. Without spaces, VoiceOver does not pause at all. |
underscore | _ | my_file_name.jpg | By itself:
“underline” In context:
“my underline file underline name dot J P G” |
By itself:
nothing In context: “my file name dot J P G” (NVDA does not say “underline”) |
By itself:
“underline” In context:
“my underline file underline name dot jaypeg” |
comma | , | The house is green, red, and orange. | By itself:
comma In context: JAWS pauses briefly, but does not say “comma” |
By itself: nothing In context:
NVDA pauses briefly, but does not say “comma” |
By itself:
“comma” In context:
VoiceOver pauses briefly, but does not say “comma” |
period | . | I like cheese. | By itself: “period” In context: JAWS pauses, but does not say “period” |
By itself: “dot” In context: NVDA pauses, but does not say “period” |
By itself: “period” In context: VoiceOver pauses, but does not say “period” |
three periods (pseudo ellipses) | … | This sentence trails off… And here is another sentence. | By itself:
“dot dot dot” In context:
“This sentence trails off dot dot dot and here is another sentence” |
By itself:
nothing In context: NVDA pauses briefly, but does not read the periods |
By itself:
nothing In context: VoiceOver does not say “ellipses,” but it does pause longer than normal. |
ellipses typed as … | … | This sentence trails off… And here is another sentence. | By itself:
“ellipses” In context:
JAWS does not say “ellipses,” but it does pause longer than normal. |
By itself:
nothing In context:
NVDA pauses briefly, but does not read the ellipses |
By itself:
“ellipses” In context: VoiceOver does not say “ellipses,” but it does pause longer than normal. |
forward slash | / | home/products/widgets
Give him/her a prize. https://www.deque.com |
By itself:
“slash” In context:
|
By itself:
“slash” In context:
|
By itself:
“slash” In context:
|
backslash | \ | c:\folder\file.docx | By itself:
“backslash” In context:
“c colon backslash folder backslash file dot docx” |
By itself:
nothing In context:
nothing |
By itself:
“backslash” In context:
“c backslash folder backslash file dot docx” |
vertical bar | | | Products | Our web site | By itself:
“vertical bar” In context:
“Products vertical bar our web site” |
By itself:
nothing In context:
nothing |
By itself:
nothing In context:
“Products vertical line our web site” |
question mark | ? | What do you mean?
Are you crazy?? Are you still crazy?!? |
By itself: “question?” In context:
|
By itself:
nothing In context:
|
By itself:
“question” In context:
|
inverted question mark, typed as ¿ | ¿ | No estoy seguro. ¿Quién soy?
No estoy seguro. Quién soy. |
By itself:
“inverted question” In context:
JAWS changes the inflection for the question, but does not mention the inverted question mark at the beginning. |
By itself:
nothing In context:
NVDA changes the voice inflection for the question, but does not mention the inverted question mark at the beginning |
By itself:
“inverted question mark” In context:
VoiceOver does NOT change inflection (and it ignores the lang=”es” set on the td tag) |
semi-colon | ; | The sentence paused; but not for long. | By itself:
“semi-colon” In context:
“The sentence paused semi-colon but not for long” |
By itself:
nothing In context:
NVDA pauses briefly, but does NOT read the semi-colon |
By itself:
“semi-colon” In context:
VoiceOver pauses briefly, but does NOT say “semi-colon” |
colon | : | Gaseous: having the properties of a gas.
https://www.deque.com |
By itself:
“colon” In context:
|
By itself:
nothing In context: NVDA pauses briefly, but does NOT read the colon |
By itself:
“colon” In context: VoiceOver pauses briefly, but does NOT say “colon” |
double quotation mark | “ | I feel “fine,” she said, sarcastically. | By itself:
“quote” In context:
“I feel quote fine quote she said sarcastically” |
By itself:
nothing In context: nothing |
By itself:
“quote” In context: VoiceOver pauses briefly but does NOT say “quote” |
double quotation mark, typed as " | “ | I feel “fine,” she said, sarcastically. | By itself:
“quote” In context:
“I feel quote fine quote she said sarcastically” |
By itself:
nothing In context:
nothing |
By itself:
“quote” In context:
VoiceOver pauses briefly but does NOT say “quote” |
right double quotation mark | ” | I feel “fine,” she said, sarcastically. | By itself:
“right quote” In context:
“I feel left quote fine right quote she said sarcastically” |
By itself: nothing In context:
“I feel fine, she said, sarcastically” |
By itself:
“right double quotation mark” In context:
VoiceOver pauses briefly but does NOT say anything |
left double quotation mark | “ | I feel “fine,” she said, sarcastically. | By itself:
“left quote” In context: “I feel left quote fine right quote she said sarcastically” |
By itself: nothing In context:
“I feel fine, she said, sarcastically” |
By itself:
“left double quotation mark” In context:
VoiceOver pauses briefly but does NOT say anything |
left double angle bracket, typed as «t; | « | This is a «word» surrounded by angle brackets. | By itself:
“left double angle bracket” In context:
“This is a left double angle bracket word right double angle bracket surrounded by angle brackets” |
By itself:
nothing In context:
“This is a word surrounded by angle brackets” |
By itself:
“left pointing double arrow” In context:
VoiceOver pauses briefly, but does not pronounce the angle bracket. |
right double angle bracket, typed as »t; | » | Home » Products | By itself:
“right double angle bracket” In context:
“Home double angle bracket products” |
By itself:
nothing In context:
“Home products” |
By itself:
“right pointing double arrow” In context:
VoiceOver pauses briefly, but does not pronounce the angle bracket. |
(written as ‹) | ‹ | This is a ‹word› surrounded by angle brackets. | By itself: nothing In context:
“This is a word surrounded by angle brackets” |
By itself:
nothing In context:
“This is a word surrounded by angle brackets” |
By itself:
“left pointing [unintelligible] quotation mark In context:
VoiceOver pauses briefly, but does not pronounce the angle bracket. |
(written as ›) | › | Home › Products | By itself:
nothing In context:
“Home products” |
By itself:
nothing In context: “Home products” |
By itself:
“right pointing [unintelligible] quotation mark” In context:
VoiceOver pauses briefly, but does not pronounce the angle bracket. |
single quotation mark, or apostrophe | ‘ | Don’t rock the boat.
This is Mary’s. This is a ‘quotation’ of sorts. |
By itself:
“apostrophe” In context:
|
By itself:
nothing In context:
|
By itself:
“apostrophe” In context:
|
right single quotation mark, or right apostrophe, typed as ’ | ’ | Don’t rock the boat.
This is Mary’s This is a ‘quotation’ of sorts. |
By itself:
“apostrophe” In context:
|
By itself: nothing In context:
|
By itself: “apostrophe” In context:
|
left single quotation mark, or left apostrophe, typed as ‘ | ‘ | This is a ‘quotation’ of sorts. | By itself:
“apostrophe” In context:
“This is a apostrophe quotation apostrophe of sorts” |
By itself:
nothing In context:
nothing |
By itself:
“right single quotation mark” In context:
“This is a quotation of sorts” (VoiceOver pauses briefly, but does NOT say anything here) |
left brace | { | You should {brace} yourself. | By itself: “left brace” In context: “You should left brace brace right brace yourself” |
By itself: nothingIn context: nothing |
“By itself: left brace” In context: “You should left brace brace right brace yourself” |
right brace | } | You should {brace} yourself. | By itself:
“right brace” In context:
“You should left brace brace right brace yourself” |
By itself:
nothing In context:
nothing |
By itself:
“right brace” In context:
“You should left brace brace right brace yourself” |
left bracket | [ | You should [bracket] your words. | By itself:
“left bracket” In context:
“You should left bracket bracket right bracket your words” |
By itself:
nothing In context:
nothing |
By itself:
“left bracket” In context:
“You should bracket your words” (VoiceOver pauses briefly, but does NOT say “bracket”) |
right bracket | ] | You should [bracket] your words. | By itself:
“right bracket” In context:
“You should left bracket bracket right bracket your words” |
By itself:
nothing In context:
nothing |
By itself:
“right bracket” In context:
“You should bracket your words” (VoiceOver pauses briefly, but does NOT say “bracket”) |
Symbol | The character by itself | In Context | JAWS 15 | NVDA | VoiceOver |
---|---|---|---|---|---|
copyright, written as © | © | This content © Deque. | By itself:
“copyright” In context:
“This content copyright Deque” |
By itself:
“copyright” In context:
“This content copyright Deque” |
By itself:
“copyright sign” In context:
“This content copyright sign Deque” |
registered trademark symbol, written as ® | ® | Spam® | By itself:
“registered” In context:
“Spam registered” |
By itself:
“registered” In context: “Spam registered” |
By itself:
“registered sign” In context:
“Spam registered sign” |
trademark symbol, TM, written as ™ | ™ | Fits like a glove™ | By itself: “trademark”In context: “Fits like a glove trademark” |
By itself: “trademark” In context: “Fits like a glove trademark” |
By itself: “trademark”In context: “Fits like a glove trademark” |
section, written as § | § | Be sure to read §24.1. | By itself:
“section” In context:
“Be sure to read section twenty four point one” |
By itself: nothing In context:
“Be sure to read twenty four point one” (NVDA does NOT read the section symbol) |
By itself:
“section symbol” In context:
“Be sure to read section symbol two four point one” |
paragraph symbol, written as ¶ | ¶ | Have you seen ¶3 on page 3? | By itself: “paragraph”In context: “Have you seen paragraph three on page three?” |
By itself: “paragraph” In context: “Have you seen paragraph three on page three?” |
By itself: I think VoiceOver says “para emoji” but it is really hard to understand.In context: “Have you seen para emoji three on page 3?” |
small bullet, written as · | · | · A phrase · and another phrase | By itself:
“dot” In context:
“dot a phrase dot and another phrase” |
By itself:
nothing In context:
“A phrase and another phrase” (NVDA does NOT read the small bullet) |
By itself:
nothing In context:
Voice over does not read the dot or pause at all. |
medium bullet, written as • | • | • A phrase • and another phrase
|
By itself:
“bullet” In context: “bullet a phrase bullet and another phrase” |
By itself:
“bullet” In context:
“Bullet a new phrase bullet and another phrase” |
By itself:
“bullet” In context:
“Bullet a new phrase bullet and another phrase” |
dagger, written as † | † | Read the footnote† | By itself: “single dagger” In context: “Read the footnote single dagger” |
By itself:
nothing In context:
“Read the footnote” (NVDA does NOT read the dagger) |
By itself:
nothing In context:
VoiceOver does NOT read the dagger |
double dagger, written as ‡ | ‡ | Read the other footnote‡ | By itself:
“double dagger” In context:
“Read the other footnote double dagger” |
By itself:
nothing In context:
“Read the other footnote” (NVDA does NOT read the double dagger) |
By itself:
nothing In context:
VoiceOver does NOT read the double dagger |
right arrow, written as → | ? | Press the ? key | By itself: nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
“right arrow” In context:
“Press the right arrow key” |
By itself:
“right arrow” In context:
“Press the right arrow key” |
left arrow, written as ⇆ | ? | Press the ? key | By itself:
nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
“left arrow” In context:
“Press the left arrow key” |
By itself:
“left arrow” In context:
“Press the left arrow key” |
up arrow, written as ↑ | ? | Press the ? key | By itself: nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
nothing In context: “Press the key” (NVDA does NOT read the up arrow symbol) |
By itself:
“up arrow” In context:
“Press the up arrow key” |
down arrow, written as ↓ | ? | Press the ? key | By itself:
nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
nothing In context:
“Press the key” (NVDA does NOT read the down arrow symbol) |
By itself:
“down arrow” In context:
“Press the down arrow key” |
horizontal arrow, written as ↔ | ? | Move ? horizontally. | By itself:
nothing In context: “Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
nothing In context:
“Press the key” (NVDA does NOT read the horizontal arrow symbol) |
By itself:
“left right arrow” In context:
“Move left right arrow horizontally” |
double right arrow, written as ⇒ | ? | Look over there ? at that shark. | By itself:
nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
nothing In context:
“Press the key” (NVDA does NOT read the double right arrow symbol) |
By itself:
nothing In context:
Voiceover does NOT read the double arrow, and does NOT pause. |
double left arrow, written as ⇚ | ? | Look over there ? at that dolphin. | By itself:
nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
nothing In context:
“Press the key” (NVDA does NOT read the double left arrow symbol) |
By itself:
nothing In context:
Voiceover does NOT read the double arrow, and does NOT pause. |
double up arrow, written as ⇑ | ? | Look up there ? at that platypus. | By itself: nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
nothing In context:
“Press the key” (NVDA does NOT read the double up arrow symbol) |
By itself:
nothing In context:
Voiceover does NOT read the double arrow, and does NOT pause. |
double down arrow, written as ⇓ | ? | Look down there ? at that echidna. | By itself:
nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
nothing In context:
“Press the key” (NVDA does NOT read the double down arrow symbol) |
By itself:
nothing In context:
Voiceover does NOT read the double arrow, and does NOT pause. |
double horizontal arrow, written as ⇔ | ? | I’m ? confused. | By itself:
nothing In context:
“Press the [slight pause] key” (JAWS pauses, but does not read the character) |
By itself:
nothing In context:
“Press the key” (NVDA does NOT read the horizontal double arrow symbol) |
By itself:
nothing In context:
Voiceover does NOT read the double arrow, and does NOT pause. |
playing cards: spades, written as ♠ | ? | Let’s call a ? a ?. | By itself:
nothing In context:
“Let’s call a a.” |
By itself:
nothing In context:
“Let’s call a a” (NVDA does NOT read the spade symbol) |
By itself:
“spades suit emoji” In context:
“Let’s call a spades suit emoji a spades suit emoji” |
playing cards: clubs, written as ♣ | ? | I found a ?. Today is my lucky day. | By itself:
nothing In context:
“I found a. Today is my lucky day” |
By itself:
nothing In context:
“I found a. Today is my lucky day.” (NVDA does NOT read the club symbol) |
By itself:
“clubs suit emoji” In context:
“I found a spades suit emoji. Today is my lucky day.” |
playing cards: hearts, written as ♥ | ? | I ? you. | By itself:
nothing In context:
“I you” |
By itself:
nothing In context:
“I you” (NVDA does NOT read the heart symbol) |
By itself:
“hearts suit emoji” In context:
“I hearts suit emoji you” |
playing cards: diamonds, written as ♦ | ? | Someone once said a ? is a girl’s best friend. | By itself:
“black diamond suit” In context:
“Someone once said a black diamond suit is a girl’s best friend” |
By itself:
nothing In context:
“Someone once said a is a girl’s best friend” (NVDA does NOT read the diamond symbol) |
By itself:
“diamonds suit emoji” In context:
“Someone once said a diamonds suit emoji is a girl’s best friend. |
Symbol | The character by itself | In Context | JAWS 14 | NVDA | VoiceOver |
---|---|---|---|---|---|
dollar symbol | $ | $21 | By itself:
“dollar” In context:
“dollar twenty one” |
By itself:
“Dollar” In context:
“Dollar twenty one” |
By itself:
“Dollar” In context:
“Dollar two one” |
Euro symbol, written as € | € | €21 | By itself:
“euros” In context:
“Twenty one Euros” |
By itself:
“Euros” In context:
“Euros twenty one” |
By itself:
“Euro two one” In context:
“Euro two one” |
Yen symbol, written as ¥ | ¥ | ¥500 | By itself:
“yen” In context:
“Yen five hundred” |
By itself:
“Yen” In context:
“Yen five hundred” |
By itself:
“Yen” In context:
“Yen five zero zero” |
Pound symbol, written as £ | £ | £10 | By itself:
“pounds” In context:
“ten pounds” |
By itself:
“Pound” In context:
“Pound ten” |
By itself:
“Pound” In context:
“Pound one zero” |
Symbol | The character by itself | In Context | JAWS 15 | NVDA | VoiceOver |
---|---|---|---|---|---|
plus | + | 5+2 | By itself:
“plus” In context:
“5 plus 2” |
By itself:
nothing In context:
“five two” (NVDA does NOT read the plus symbol) |
By itself:
“plus” In context:
“five plus two” |
minus, written as − | ? | 5?2 | By itself:
nothing In context:
“5 dash 2” (Note that this is the incorrect interpretation of this symbol) |
By itself:
“minus” In context:
“five minus two” |
By itself:
“minus” In context:
“five minus two” |
plus or minus, written as ± | ± | 5±2 | By itself:
“plus or minus” In context:
“5 plus or minus 2” |
By itself:
nothing In context:
“five two” (NVDA does NOT read the plus or minus symbol) |
By itself:
“plus or minus” In context:
“five plus or minus two” |
divided by, written as ÷ | ÷ | 5÷2 | By itself:
“divided by” In context:
“5 divided by 2” |
By itself:
nothing In context:
“five two” (NVDA does NOT read the divided by symbol) |
By itself:
“divided by” In context:
“five divided by two” |
multiplied by, written as × | × | 5×2 | By itself:
“times” In context:
“5 times 2” |
By itself: nothing In context:
“five two” (NVDA does NOT read the times symbol) |
By itself:
“times” In context:
“five times two” |
equal sign | = | 5=3+2 | By itself:
“equals” In context:
“5 equals 3 plus 2” |
By itself:
nothing In context:
“five three two” (NVDA does NOT read equals or plus) |
By itself:
“equals” In context:
“Five equals three plus two” |
not equal, written as ≠ | ? | 5?2 | By itself:
nothing In context:
“5 question mark 2” (Note that this is the incorrect interpretation of this symbol) |
By itself:
“not equal to” In context:
“five not equal to two” |
By itself:
“not equals” In context:
“five not equals two” |
approximately equal, written as ≈ | ? | 5?4.999
5 ? 4.999 |
By itself:
“tilde” (Note: this is the wrong interpretation of this symbol) In context:
“5 tilde 4.999” (Note: this is the wrong interpretation of this symbol) |
By itself:
nothing In context:
“five four point nine nine nine” (NVDA does not read the approximately equal symbol) |
By itself:
“Almost equal to” In context:
VoiceOver does NOT read the symbol at all, whether surrounded by spaces or not. VoiceOver says “five four point nine nine nine.” |
percent | % | 5% | By itself:
“percent” In context:
“5 percent” |
By itself:
“percent” In context:
“5 percent” |
By itself:
“percent” In context:
“five percent” |
percent with 2-digit denominator, written as ‰ | ‰ | 5‰ | By itself:
nothing In context:
“five” (JAWS does not read the symbol at all) |
By itself:
nothing In context:
“five” (NVDA does not read the per mil symbol) |
By itself: “per mil sign”In context: “five per mil” |
fraction: half, written as ½ | ½ | ½ cup | By itself: “one half”In context: “one half cup” |
By itself: “a half” In context: “a half cup” |
By itself: “one half” In context: “one half cup” |
fraction: one quarter, written as ¼ | ¼ | ¼ liter | By itself:
“one fourth” In context:
“one fourth liter” |
By itself:
“a quarter” In context:
“a quarter liter” |
By itself:
“one fourth” In context:
“one fourth liter” |
fraction: three quarters, written as ¾ | ¾ | ¾ kilometer | By itself:
“three fourths” In context:
“three fourths kilometer” |
By itself:
“three quarter” In context:
“three quarter kilometer” |
By itself:
“three fourths” In context:
“three fourths kilometer” |
less than, written as < | < | 5<6 | By itself:
“less” In context:
“5 less 6” |
By itself:
nothing In context:
“five six” |
By itself:
“less” In context:
“five less than six” |
greater than, written as > | > | 5>4 | By itself:
greater In context:
“5 greater 4” |
By itself:
nothing In context:
“five four” |
By itself:
“greater” In context:
“five greater than four” |
less than or equal, written as ≤ | ? | 5?x | By itself:
“equals” (Note: This is NOT the correct meaning of this symbol) In context:
“5 equals x” (Note that this is the incorrect interpretation of this symbol) |
By itself:
nothing In context:
“five x” (NVDA does NOT read the less than or equal to symbol) |
By itself:
“less than or equal to” In context:
“five less than or equal to x” |
greater than or equal, written as ≥ | ? | 5?y | By itself:
“equals” (Note: This is NOT the correct meaning of this symbol) In context:
“5 equals y” (Note that this is the incorrect interpretation of this symbol) |
By itself:
nothing In context:
“five y” (NVDA does NOT read the greater than or equal to symbol) |
By itself:
“greater than or equal to” In context:
“five greater than or equal to y” |
prime, written as ′ | ? | 1? | By itself:
nothing In context:
JAWS does NOT read the symbol at all |
By itself:
nothing In context:
“one” (NVDA does NOT read the prime symbol) |
By itself:
“prime” In context:
“one prime” |
double prime, written as ″ | ? | 1? | By itself:
nothing In context:
JAWS does NOT read the symbol at all |
By itself:
nothing In context:
“one” (NVDA does NOT read the double prime symbol) |
By itself:
“double prime” In context:
“one double prime” |
degree, written as ° | ° | 90° | By itself:
“degrees” In context:
“ninety degrees” |
By itself:
“degrees” In context:
“ninety degrees” |
By itself:
“degrees” In context:
“nine zero degrees” |
sum, written as ∑ | ? | ?i=x+y | By itself:
nothing In context:
“i equals x plus y” (JAWS does not read the sum symbol at all) |
By itself:
nothing In context: “i x y” (NVDA does NOT read the sum symbol or the equals sign or the plus sign) |
By itself:
It’s hard to understand but it sounds like it might be saying “summation,” preceded by some other sounds In context:
I’m not sure what this is actually saying, but it sounds like “bi equals x plus y” |
microns, written as µ | µ | 5µ | By itself:
“mu” (sounds like “myoo”) In context:
“5 mu” |
By itself:
“micro” In context:
“five mu” |
By itself: “Greek small letter mu” (sounds like “myoo”) In context:
VoiceOver does NOT read the character. It simply says “five” |