Screen Reader Reads Every Language Before Everything
Why Don't Screen Readers Always Read What's on the Screen? Office 1: Punctuation and Typographic Symbols
Screen readers are designed to do one affair: read what'south on the screen. That'southward why they call them screen readers, right? You would recollect that screen reader software would have perfected the art of reading text by now, because that was the whole reason why screen readers were invented. If there'due south one affair a screen reader ought to do really well, it'south read what's on the screen.
Unfortunately, screen readers don't always read what's on the screen. Sometimes that'south OK, only sometimes that's actually bad. If a screen reader fails to read important text, the user will neglect to sympathize it. Information technology'southward non the user'southward fault, and it'due south usually non the web developer'due south fault either. These are issues with the screen reader software itself. Information technology's high time for screen reader programmers to prepare these problems, and to get some consistency across brands of screen readers, because right now it's kind of a mess… and I'grand merely talking about text, typographic symbols, and static HTML here: the things that screen readers are supposed to excel at reading.
- Part ane of this serial focuses on the way screen readers read (or don't read) punctuation and typographic symbols.
- Part two will focus on the issues with inline semantic markup.
- Role 3 will focus on bug with pronunciation, including common content — like telephone numbers, dates, and abbreviations — as well equally uncommon or new words, or words with more than one possible pronunciation.
You Can't Count on Screen Readers to Read Almost Punctuation or Typographic Symbols
The way screen readers care for punctuation is incredibly inconsistent from 1 screen reader to another, and at that place isn't a unmarried 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 yous blazon an HTML document using all the punctuation marks available on your keyboard and listen to a screen reader read the certificate in a web browser, you'll hear only some of the punctuation and characters read aloud to you. If yous use HTML entities or other special characters, you lot'll hear even less.
This is partly (but not entirely) by pattern. Screen reader manufacturers have understandably decided that most users don't need to hear every comma, period, and apostrophe in a certificate. 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. Simply every screen reader has major flaws in reading some aspect of typographical symbols.
Here's a sample of some of the issues:
- The NVDA screen reader, for example, doesn't read hardly whatsoever typographical symbols at all in its default configuration, making common symbols similar asterisks and plus symbols essentially useless to NVDA users. This means web developers tin can't employ an asterisk to announce a required field on a course, unless they supplement the asterisk with some other NVDA-friendly method.
- Similarly, NVDA ignores the plus and equals symbols. It says "5 two 7" when it should say "five plus ii equals seven," making it hard — or incommunicable — 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 − (non 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 — ane plus one, or 1 minus ane, 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 and then users don't know when quotation or parenthetical phrases begin or finish. To its credit, VoiceOver does suspension briefly for these elements, just users won't know the divergence between a nuance, parentheses, or a quotation, considering all pauses sound the aforementioned, fifty-fifty though the reasons for the pauses are all different, and should convey dissimilar semantic meanings.
These are just some of the examples of where things can go incorrect when trying to apply basic punctuation or typographic symbols to communicate on the web. These are significant flaws in the nigh basic of screen reader functions: reading what'due south on the screen. There is too much potential for screen readers to miss out on the information that is correct at that place in forepart of them. I'grand not talking about annihilation complicated here. I'thousand talking near the text and symbols right there on your keyboard, and the ones available in HTML entities and other standard grapheme sets.
It's time for screen reader manufacturers to pace upwards to the plate and design software that does a better chore of actually reading what'due south on the screen
User Verbosity Preferences versus Default Settings
Screen readers accept verbosity settings that let users choose how much punctuation to hear. I'm not proverb to take away user preferences. Let users choose their own verbosity level, but the default level needs to be loftier enough for average users to get the data communicated in typical web content by the authors. Authors need to know that they tin trust screen readers to read the text that the authors write, and right at present, writer's tin can't trust screen readers to exercise that.
There are certainly reasons for users to ignore some kinds of punctuation under some circumstances. Information technology would be annoying to near users to hear every single comma or catamenia in every sentence sentence, for case. And sometimes users would rather hear a intermission than hear every opening and closing parenthesis. That's understandable. By pausing instead of reading all punctuation, screen readers audio more than natural and human-similar, and that can be a good thing.
Only when the punctuation or typographic symbols convey of import significant, users need to be able to hear the punctuation and symbols, or the significant will be lost. At the extreme terminate, blind web developers probably need to hear all the punctuation when reading HTML or JavaScript lawmaking, for instance. They may want to toggle the verbosity setting to "all punctuation" when reading code, and use a less verbose fashion for reading prose. In that location'south no need to force a loftier verbosity level on all users.
Yet, the verbosity probably should not be prepare so low past default that the screen reader can't fifty-fifty read a URL correctly (for example, past not reading the colon or slashes), or convey even the most basic punctuation to readers. NVDA's settings, in particular, are so thin 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 nigh all punctuation for all users, or writing out everything in words instead of punctuation (similar "1 plus 1 equals ii" instead of "1+1=2"), or merely saying "I don't care what the screen reader does. It should read the text, merely information technology doesn't. Information technology's not my fault. I'k not responsible, because I did my function by putting the text in there."
Screen Reader Flaws Breed Aloofness
Screen reader flaws breed apathy amongst 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 ever a footling bit broken, and not bother to investigate workarounds, particularly 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, simply I didn't know all of the intricate details of exactly what they did or didn't read, so I fix some tests.
Versions Tested:
- NVDA 2013.3, tested with Firefox 26.0 on Windows 7
- JAWS 15.0.4203, tested with Net Explorer 9.0.23 on Windows seven and Cyberspace Explorer 11 on Windows eight
- VoiceOver OSX ten.9.1, tested with Safari seven.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; non fifty-fifty close. I chose from among the more than mutual characters; characters that most English-speaking authors would wait screen readers to get right. A more comprehensive examination 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 calibration of the job in one case you consider all possible character sets, but with simply this limited set of common characters, the results are still disappointing.
Findings:
JAWS Bugs
First of all, information technology'south fourth dimension to prepare the bugs, in JAWS in particular. How is it that there are still bugs in screen reader software for reading bones text and typographical symbols? That'south something screen readers should have perfected long, long agone.
| 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" | non equals |
Safe Characters (all screen readers read the characters out loud):
If y'all need the typographical symbols to be read out loud explicitly, of the 91 symbols tested, the only "safe" symbols to utilise 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 every bit ©)
- ® (registered, written as ®)
- ™ (trademark, written as ™)
- ¶ (paragraph, written equally ¶)
- • (bullet, written as •)
- $ (dollar)
- € (Euro, written as €)
- £ (British pound, written as £)
- ¥ (Yen, written as ¥)
- % (per centum)
- ½ (1 one-half, written as ½)
- ¼ (ane fourth, written as ¼)
- ¾ (three fourths, written every bit ¾)
- ° (degrees, written as °)
Everything else fails in at least 1 of the 3 screen readers tested. When I say information technology "fails," I mean that the symbol itself isn't read out loud. Sometimes that'due south OK, but oft information technology 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 hateful you tin't employ it. It merely means that the meaning of that symbol volition not be communicated explicitly. If the meaning of the symbol is essential to your bulletin, be very cautious in how you use the symbols. If the meaning of a symbol is only tangential or not essential to the bulletin, y'all have a chip more freedom.
You can use such punctuation every bit 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 volition generate pauses, or voice inflections in the example of exclamation marks and question marks. Just don't expect the screen reader to really read most of these punctuation marks themselves out loud unless the user pauses and listens character past 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 break at the beginning and terminate of a quotation, you'll be fine. But if you need the user to know that the reason for the pause is because in that location are quotation marks, you're out of luck in all screen readers except JAWS.
Unread Characters (significant that at least one screen reader volition not read the character out loud):
- ~ (tilde)
- ? (backtick)
- ! (exclamation mark)
- ¡ (inverted exclamation mark, written every bit ¡)
- # (pound sign)
- ^ (caret)
- * (asterisk)
- ( (left parenthesis)
- ) (correct parenthesis)
- – (dash)
- — (k dash, written as —)
- — (double nuance)
- – (north dash, written as –)
- _ (underscore)
- , (comma)
- . (period)
- … (pseudo ellipses, three periods)
- … (ellipses, written equally …)
- \ (backslash)
- | (vertical bar)
- ? (question marking)
- ¿ (inverted question mark, written as ¿)
- ; (semi-colon)
- : (colon)
- " (quotation marker)
- " (quotation mark, written as ")
- " (left double quotation marking, written as “)
- " (correct double quotation mark, written every bit ”)
- « (left double bending bracket, written equally «)
- »; (correct double angle bracket, written as »)
- ‹ (left unmarried angle bracket, written every bit ‹)
- › (right single angle subclass, written every bit ›)
- ' (single quote, or apostrophe)
- ' (right single quote, written as ’)
- ' (left single quote, written as ‘)
- { (left brace)
- } (correct brace)
- [ (left bracket)
- ] (correct bracket)
- § (section, written as §)
- · (small bullet, written as ·)
- † (dagger, written as †)
- ‡ (double dagger, written as ‡)
- ? (right arrow, written every bit →)
- ? (left arrow, written as ←)
- ? (up pointer, written as ↑)
- ? (downward pointer, written as ↓)
- ? (horizontal arrow, written as ↔)
- ? (left double arrow, written every bit ⇐)
- ? (right double pointer, written every bit ⇒)
- ? (up double arrow, written as ⇑)
- ? (down double pointer, written as ⇓)
- ? (horizontal double arrow, written equally ⇔)
- ? (spades, written as ♠)
- ? (clubs, written as ♣)
- ? (hearts, written as ♥)
- ? (diamonds, written as ♦)
- + (plus)
- – (minus, written as −)
- ± (plus or minus, written as ±)
- ÷ (divided by, written equally ÷)
- × (multiplied past, written every bit ×)
- = (equals)
- ? (non equals, written as ≠)
- ? (approximately equals, written as ≈)
- ‰ (per mil, written equally ‰)
- < (less than, written as <)
- > (greater than, written as >)
- ? (less than or equal to, written as ≤)
- ? (greater than or equal to, written as ≥)
- ? (prime, written equally &prime number;)
- ? (double prime, written as ″)
- ? (sum, written as ∑)
The least verbose of the screen readers tested was NVDA, by a big margin. If not for NVDA, the number of characters read out loud would exist much college. JAWS and VoiceOver have problems of their ain though.
Here are the detailed tables showing which symbols were, or weren't read by which screen readers.
- Grammatical Punctuation Marks
- HTML Entities and Typographical Symbols
- Currency
- Mathematical Symbols
| Symbol | The character past itself | In Context | JAWS xv | 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: nada In context: "H T T P slash slash website dot com slash user" (NVDA does Non mention the tilde or the colon.) | Past 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" | Past itself: nothing In context: "and I D 1" (NVDA does Not pronounce the tick mark or the equals sign.) | By itself: "accent" In context: "and I D equals ane" (VoiceOver does NOT read the backtick.) |
| exclamation mark | ! | This is exciting! This is heady. | By itself: "exclaim" In context: JAWS does not change voice inflection at all. | By itself: zip In context: NVDA changes the inflection very slightly (virtually imperceptibly) when in that location is an assertion mark at the end of a sentence. | By itself: "exclaim" In context: Nil. VoiceOver does not change phonation 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 concluding give-and-take, but does not mention the inverted exclamation mark at the beginning. | By itself: nothing In context: NVDA reads the assertion with a dissimilar inflection, simply does not mention the inverted exclamation marking at the beginning. | By itself: "inverted assertion mark" In context: VoiceOver does NOT change vocalism inflection. (It also does Non change linguistic communication, 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" (Merely JAWS slurs the "at" and "Paul" together, and then people might hands 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 | Past itself: "number" In context: I live at flat number xl″ | By itself: nothing In context: "I live at apartment twoscore" (NVDA does NOT read the number sign) | Past itself: "number" In context: I alive at flat number 4 nil" |
| caret | ^ | This is ^non the worst I've seen | Past itself: "caret" In context: "This is caret not the worst I've seen" | Past itself: nothing In context: "This is not the worst I've seen (NVDA does NOT read the caret) | Past 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 | & | K&Ms BB&T black & white | By itself: "and" In context:
| Past itself: "and" In context:
| Past itself: "and" In context:
|
| asterisk | * | Fields marked with * are required. Proper noun* | 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 correct paren excited" | By itself: nothing In context: NVDA does not say anything, nor does it pause; it reads directly through | By itself: "left paren" In context: VoiceOver pauses briefly for the opening and endmost parentheses, only 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 annihilation, nor does it interruption; it reads directly through | By itself: "right paren" In context: VoiceOver pauses briefly for the opening and closing parentheses, but does non say anything. |
| dash | – | blue-light-green. This is — not unexpectedly — a parenthetical clause. | By itself: "nuance" In context: "blueish dash green" "This is g dash not unexpectedly one thousand dash a parenthetical clause." | Past itself: nothing In context: NVDA does not say anything, nor does it pause; it reads straight through | By itself: "dash" In context: "blueish dark-green". VoiceOver does not read the nuance. |
| m dash, typed as — | — | This is also—not unexpectedly—a parenthetical clause. | By itself: "grand dash" In context: "This is too one thousand dash not unexpectedly k nuance a parenthetical clause." | By itself: naught In context: NVDA does non 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, simply does non say anything. |
| northward dash, typed every bit – | – | This is another – non unexpectedly – parenthetical clause. This is another–not unexpectedly–parenthetical clause. | By itself: "n dash" In context: "This is another northward dash not unexpectedly n dash parenthetical clause." | By itself: nothing In context: NVDA does not say anything, nor does information technology pause; it reads straight through | By itself: "north nuance" 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 M" | Past itself: nothing In context: "my file proper name dot J P 1000" (NVDA does non say "underline") | By itself: "underline" In context: "my underline file underline proper name dot jaypeg" |
| comma | , | The house is dark-green, blood-red, and orange. | By itself: comma In context: JAWS pauses briefly, but does not say "comma" | Past itself: nada In context: NVDA pauses briefly, but does not say "comma" | Past itself: "comma" In context: VoiceOver pauses briefly, merely does not say "comma" |
| period | . | I similar cheese. | By itself: "menstruum" In context: JAWS pauses, but does not say "period" | By itself: "dot" In context: NVDA pauses, merely does non say "period" | By itself: "period" In context: VoiceOver pauses, but does non say "period" |
| three periods (pseudo ellipses) | … | This sentence trails off… And here is another judgement. | By itself: "dot dot dot" In context: "This sentence trails off dot dot dot and here is another sentence" | By itself: nada In context: NVDA pauses briefly, merely does not read the periods | By itself: nothing In context: VoiceOver does not say "ellipses," but it does pause longer than normal. |
| ellipses typed equally … | … | This judgement trails off… And here is another sentence. | By itself: "ellipses" In context: JAWS does not say "ellipses," but information technology does pause longer than normal. | By itself: nothing In context: NVDA pauses briefly, but does non read the ellipses | By itself: "ellipses" In context: VoiceOver does not say "ellipses," simply it does intermission longer than normal. |
| frontward slash | / | home/products/widgets Give him/her a prize. https://www.deque.com | By itself: "slash" In context:
| Past itself: "slash" In context:
| Past itself: "slash" In context:
|
| backslash | \ | c:\folder\file.docx | By itself: "backslash" In context: "c colon backslash folder backslash file dot docx" | By itself: naught In context: nothing | By itself: "backslash" In context: "c backslash binder backslash file dot docx" |
| vertical bar | | | Products | Our spider web site | Past itself: "vertical bar" In context: "Products vertical bar our web site" | By itself: naught In context: zilch | By itself: aught In context: "Products vertical line our spider web site" |
| question marker | ? | What do you mean? Are you crazy?? Are you notwithstanding crazy?!? | Past itself: "question?" In context:
| By itself: nothing In context:
| By itself: "question" In context:
|
| inverted question marker, 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. | Past itself: nothing In context: NVDA changes the voice inflection for the question, only does not mention the inverted question mark at the starting time | By itself: "inverted question marking" In context: VoiceOver does NOT change inflection (and it ignores the lang="es" assail the td tag) |
| semi-colon | ; | The sentence paused; merely not for long. | By itself: "semi-colon" In context: "The judgement paused semi-colon but not for long" | Past 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: nil In context: NVDA pauses briefly, but does Non read the colon | By itself: "colon" In context: VoiceOver pauses briefly, simply does Not say "colon" |
| double quotation marker | " | I feel "fine," she said, sarcastically. | By itself: "quote" In context: "I feel quote fine quote she said sarcastically" | Past itself: nothing In context: zero | Past itself: "quote" In context: VoiceOver pauses briefly just does NOT say "quote" |
| double quotation mark, typed as " | " | I feel "fine," she said, sarcastically. | Past itself: "quote" In context: "I feel quote fine quote she said sarcastically" | By itself: zilch In context: nothing | By itself: "quote" In context: VoiceOver pauses briefly just 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" | Past itself: nothing In context: "I feel fine, she said, sarcastically" | By itself: "correct double quotation mark" In context: VoiceOver pauses briefly but does Non say anything |
| left double quotation mark | " | I experience "fine," she said, sarcastically. | By itself: "left quote" In context: "I feel left quote fine right quote she said sarcastically" | By itself: goose egg 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 past angle brackets. | By itself: "left double angle bracket" In context: "This is a left double bending bracket word correct double angle bracket surrounded past angle brackets" | By itself: naught In context: "This is a give-and-take surrounded by angle brackets" | Past itself: "left pointing double arrow" In context: VoiceOver pauses briefly, but does not pronounce the angle subclass. |
| correct double bending subclass, typed as »t; | » | Home » Products | By itself: "right double bending subclass" In context: "Abode double bending bracket products" | By itself: nothing In context: "Home products" | By itself: "correct pointing double arrow" In context: VoiceOver pauses briefly, but does not pronounce the angle subclass. |
| (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 past angle brackets" | Past itself: "left pointing [unintelligible] quotation mark In context: VoiceOver pauses briefly, merely does not pronounce the angle bracket. |
| (written as ›) | › | Abode › Products | By itself: cipher In context: "Home products" | By itself: nothing In context: "Domicile products" | By itself: "right pointing [unintelligible] quotation mark" In context: VoiceOver pauses briefly, but does not pronounce the angle subclass. |
| single quotation mark, or apostrophe | ' | Don't rock the boat. This is Mary'southward. This is a 'quotation' of sorts. | By itself: "apostrophe" In context:
| By itself: aught In context:
| Past itself: "apostrophe" In context:
|
| right single quotation mark, or correct apostrophe, typed as ’ | ' | Don't stone the gunkhole. This is Mary'southward This is a 'quotation' of sorts. | By itself: "apostrophe" In context:
| By itself: nothing In context:
| Past 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 unmarried quotation mark" In context: "This is a quotation of sorts" (VoiceOver pauses briefly, but does Not say annihilation here) |
| left caryatid | { | Yous should {caryatid} yourself. | Past itself: "left caryatid" In context: "Yous should left brace brace right brace yourself" | By itself: nothingIn context: nothing | "Past itself: left brace" In context: "You should left brace brace correct brace yourself" |
| right brace | } | You should {caryatid} yourself. | By itself: "right brace" In context: "You should left caryatid brace right brace yourself" | By itself: nothing In context: goose egg | By itself: "right caryatid" In context: "You should left brace caryatid correct brace yourself" |
| left bracket | [ | You lot should [bracket] your words. | By itself: "left bracket" In context: "You should left subclass bracket right bracket your words" | By itself: zilch In context: null | By itself: "left bracket" In context: "You should bracket your words" (VoiceOver pauses briefly, merely does NOT say "bracket") |
| right bracket | ] | Y'all should [bracket] your words. | By itself: "right bracket" In context: "You should left bracket bracket right bracket your words" | By itself: naught In context: nothing | By itself: "right bracket" In context: "You lot should bracket your words" (VoiceOver pauses briefly, but does Not say "bracket") |
| Symbol | The graphic symbol 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® | Past 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" | Past itself: "trademark"In context: "Fits similar a glove trademark" |
| section, written as § | § | Exist sure to read §24.1. | By itself: "section" In context: "Be sure to read section 20 four point one" | By itself: nothing In context: "Exist sure to read xx 4 point one" (NVDA does NOT read the section symbol) | Past itself: "section symbol" In context: "Be sure to read section symbol two 4 point one" |
| paragraph symbol, written as ¶ | ¶ | Have y'all seen ¶3 on folio iii? | By itself: "paragraph"In context: "Accept y'all seen paragraph three on folio iii?" | By itself: "paragraph" In context: "Accept you seen paragraph three on page three?" | By itself: I recollect VoiceOver says "para emoji" but information technology is really hard to empathise.In context: "Have y'all seen para emoji iii on page 3?" |
| small bullet, written as · | · | · A phrase · and another phrase | By itself: "dot" In context: "dot a phrase dot and another phrase" | Past itself: nil In context: "A phrase and another phrase" (NVDA does Not read the minor 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" | Past itself: "bullet" In context: "Bullet a new phrase bullet and some other phrase" | By itself: "bullet" In context: "Bullet a new phrase bullet and another phrase" |
| dagger, written as † | † | Read the footnote† | By itself: "unmarried dagger" In context: "Read the footnote single dagger" | By itself: cypher In context: "Read the footnote" (NVDA does Not read the dagger) | By itself: nothing In context: VoiceOver does Non 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) | Past itself: nothing In context: VoiceOver does NOT read the double dagger |
| right pointer, written every bit → | ? | Press the ? key | Past itself: nothing In context: "Press the [slight intermission] key" (JAWS pauses, only does not read the character) | By itself: "correct pointer" In context: "Press the right arrow key" | By itself: "right pointer" In context: "Press the right arrow key" |
| left arrow, written every bit ⇆ | ? | Press the ? key | By itself: nothing In context: "Printing the [slight break] primal" (JAWS pauses, but does not read the graphic symbol) | Past itself: "left arrow" In context: "Press the left arrow fundamental" | By itself: "left arrow" In context: "Press the left arrow cardinal" |
| up pointer, written as ↑ | ? | Press the ? key | By itself: nothing In context: "Press the [slight intermission] key" (JAWS pauses, merely does non read the character) | By itself: goose egg In context: "Press the central" (NVDA does NOT read the up arrow symbol) | By itself: "up arrow" In context: "Press the up arrow fundamental" |
| downwards 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: zilch In context: "Press the key" (NVDA does NOT read the down pointer symbol) | By itself: "down pointer" In context: "Printing the down arrow fundamental" |
| horizontal arrow, written as ↔ | ? | Motion ? horizontally. | By itself: naught In context: "Press the [slight pause] primal" (JAWS pauses, but does not read the character) | By itself: nada In context: "Printing the cardinal" (NVDA does Not read the horizontal arrow symbol) | Past itself: "left right arrow" In context: "Move left right arrow horizontally" |
| double right arrow, written equally ⇒ | ? | Look over there ? at that shark. | By itself: goose egg In context: "Press the [slight break] key" (JAWS pauses, merely does not read the character) | By itself: nothing In context: "Printing the key" (NVDA does NOT read the double right pointer symbol) | By itself: nothing In context: Voiceover does Not read the double arrow, and does NOT intermission. |
| double left arrow, written equally ⇚ | ? | Look over there ? at that dolphin. | By itself: nothing In context: "Printing the [slight suspension] key" (JAWS pauses, but does not read the grapheme) | 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 upward in that location ? at that platypus. | Past itself: nothing In context: "Printing the [slight pause] central" (JAWS pauses, but does non read the character) | By itself: nothing In context: "Press the key" (NVDA does Not read the double upwardly 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 at that place ? at that echidna. | By itself: nothing In context: "Press the [slight pause] primal" (JAWS pauses, but does not read the character) | Past itself: nothing In context: "Printing the cardinal" (NVDA does Non read the double down pointer symbol) | Past itself: nothing In context: Voiceover does NOT read the double pointer, and does Non pause. |
| double horizontal arrow, written as ⇔ | ? | I'grand ? confused. | By itself: nada In context: "Press the [slight suspension] cardinal" (JAWS pauses, but does not read the character) | By itself: nix In context: "Press the key" (NVDA does Not read the horizontal double arrow symbol) | Past itself: aught In context: Voiceover does Not read the double arrow, and does Not suspension. |
| playing cards: spades, written as ♠ | ? | Allow's telephone call a ? a ?. | By itself: nothing In context: "Permit's call a a." | By itself: nothing In context: "Allow's call a a" (NVDA does Non read the spade symbol) | By itself: "spades adjust emoji" In context: "Let's call a spades suit emoji a spades suit emoji" |
| playing cards: clubs, written as ♣ | ? | I plant 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 mean solar day." (NVDA does Not read the club symbol) | Past itself: "clubs suit emoji" In context: "I found a spades accommodate emoji. Today is my lucky day." |
| playing cards: hearts, written as ♥ | ? | I ? you. | By itself: goose egg In context: "I yous" | 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 yous" |
| playing cards: diamonds, written as ♦ | ? | Someone once said a ? is a girl'southward best friend. | Past itself: "blackness diamond conform" In context: "Someone once said a black diamond suit is a girl'southward best friend" | By itself: cipher In context: "Someone in one case said a is a daughter's best friend" (NVDA does Not read the diamond symbol) | Past itself: "diamonds accommodate emoji" In context: "Someone one time said a diamonds accommodate emoji is a girl's best friend. |
| Symbol | The graphic symbol by itself | In Context | JAWS 14 | NVDA | VoiceOver |
|---|---|---|---|---|---|
| dollar symbol | $ | $21 | Past itself: "dollar" In context: "dollar twenty one" | Past itself: "Dollar" In context: "Dollar twenty ane" | By itself: "Dollar" In context: "Dollar two 1" |
| Euro symbol, written as € | € | €21 | By itself: "euros" In context: "Twenty one Euros" | By itself: "Euros" In context: "Euros twenty ane" | By itself: "Euro ii one" In context: "Euro ii one" |
| Yen symbol, written every bit ¥ | ¥ | ¥500 | By itself: "yen" In context: "Yen five hundred" | By itself: "Yen" In context: "Yen five hundred" | By itself: "Yen" In context: "Yen five nil naught" |
| Pound symbol, written as £ | £ | £ten | By itself: "pounds" In context: "10 pounds" | By itself: "Pound" In context: "Pound ten" | By itself: "Pound" In context: "Pound one zero" |
| Symbol | The character past itself | In Context | JAWS fifteen | NVDA | VoiceOver |
|---|---|---|---|---|---|
| plus | + | v+2 | By itself: "plus" In context: "five plus 2" | Past itself: nothing In context: "five two" (NVDA does NOT read the plus symbol) | By itself: "plus" In context: "v plus two" |
| minus, written as − | ? | v?2 | By itself: nothing In context: "v dash two" (Notation that this is the wrong estimation of this symbol) | By itself: "minus" In context: "v minus two" | By itself: "minus" In context: "5 minus two" |
| plus or minus, written every bit ± | ± | 5±2 | By itself: "plus or minus" In context: "5 plus or minus 2" | By itself: nothing In context: "5 two" (NVDA does NOT read the plus or minus symbol) | By itself: "plus or minus" In context: "5 plus or minus ii" |
| divided by, written as &separate; | ÷ | 5÷2 | By itself: "divided past" In context: "5 divided past 2" | By itself: null In context: "five 2" (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: "v times 2" | By itself: cypher In context: "five 2" (NVDA does NOT read the times symbol) | By itself: "times" In context: "five times two" |
| equal sign | = | 5=iii+2 | By itself: "equals" In context: "5 equals 3 plus ii" | By itself: nothing In context: "v three ii" (NVDA does NOT read equals or plus) | Past itself: "equals" In context: "5 equals three plus two" |
| not equal, written as ≠ | ? | 5?two | By itself: aught In context: "5 question marking 2" (Notation that this is the incorrect interpretation of this symbol) | By itself: "not equal to" In context: "five non equal to two" | By itself: "not equals" In context: "five not equals 2" |
| approximately equal, written equally ≈ | ? | v?iv.999 5 ? 4.999 | By itself: "tilde" (Note: this is the incorrect estimation of this symbol) In context: "five tilde iv.999" (Note: this is the wrong interpretation of this symbol) | By itself: nothing In context: "five four point 9 nine nine" (NVDA does not read the approximately equal symbol) | By itself: "Almost equal to" In context: VoiceOver does Non read the symbol at all, whether surrounded by spaces or not. VoiceOver says "five four bespeak 9 nine nine." |
| percentage | % | v% | By itself: "percent" In context: "5 percentage" | By itself: "percentage" In context: "v percent" | By itself: "percent" In context: "5 percent" |
| percent with 2-digit denominator, written equally ‰ | ‰ | 5‰ | Past itself: zippo In context: "five" (JAWS does not read the symbol at all) | By itself: aught In context: "five" (NVDA does not read the per mil symbol) | By itself: "per mil sign"In context: "v per mil" |
| fraction: half, written as ½ | ½ | ½ cup | By itself: "ane one-half"In context: "ane one-half cup" | By itself: "a half" In context: "a half loving cup" | Past itself: "ane half" In context: "1 one-half cup" |
| fraction: 1 quarter, written equally ¼ | ¼ | ¼ liter | Past itself: "i fourth" In context: "1 fourth liter" | By itself: "a quarter" In context: "a quarter liter" | By itself: "one quaternary" In context: "one fourth liter" |
| fraction: three quarters, written as ¾ | ¾ | ¾ kilometer | By itself: "3 fourths" In context: "three fourths kilometer" | By itself: "3 quarter" In context: "iii quarter kilometer" | By itself: "three fourths" In context: "three fourths kilometer" |
| less than, written as < | < | 5<half-dozen | By itself: "less" In context: "5 less 6" | By itself: nix In context: "five half dozen" | By itself: "less" In context: "five less than six" |
| greater than, written as > | > | 5>4 | By itself: greater In context: "5 greater 4" | Past itself: nix In context: "five four" | Past itself: "greater" In context: "5 greater than four" |
| less than or equal, written every bit ≤ | ? | 5?x | By itself: "equals" (Note: This is NOT the correct significant of this symbol) In context: "5 equals x" (Note that this is the wrong 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: "v less than or equal to ten" |
| greater than or equal, written as ≥ | ? | 5?y | By itself: "equals" (Notation: This is NOT the right meaning of this symbol) In context: "5 equals y" (Notation that this is the incorrect interpretation of this symbol) | By itself: zippo In context: "five y" (NVDA does Non 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 equally ′ | ? | i? | By itself: zilch In context: JAWS does Non read the symbol at all | By itself: cypher 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 every bit ° | ° | 90° | Past 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 | Past 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 exist saying "summation," preceded past another sounds In context: I'm not sure what this is actually proverb, simply it sounds like "bi equals x plus y" |
| microns, written as µ | µ | 5µ | By itself: "mu" (sounds like "myoo") In context: "v mu" | By itself: "micro" In context: "five mu" | Past itself: "Greek small letter mu" (sounds similar "myoo") In context: VoiceOver does NOT read the character. Information technology simply says "5" |
Source: https://www.deque.com/blog/dont-screen-readers-read-whats-screen-part-1-punctuation-typographic-symbols/
0 Response to "Screen Reader Reads Every Language Before Everything"
Post a Comment