User agent reliability for NVDA IE Screen reader compatibility

Screen Readers
Dec 12, 2023

Shows how well NVDA IE supports ARIA and WCAG sufficient techniques. The Internet Explorer (IE) desktop application goes out of support on June 15, 2022, and will be removed by Windows Update for most Windows 10 users.

Latest version tested

NVDA 2019.2 with IE11

  • All tests: 82 pass of 115 tests (71%)
  • ARIA tests: 27 pass of 42 tests (64%)
  • WCAG tests: 57 pass of 83 tests (69%)

Reliability trend

100%80%60%40%20%0%201470%201570%201670%201771%201871%201971%2020202120222023

Failing tests

 TestModeWhat the user hearsNotes
FailPage with xml:lang set on the html and p elementsReadingAct-if tay-bill. Ray-day-oh.Pronounced as English. Ignores xml:lang.
Failapplet with title attributeReadingEmbedded objectNo description of non-text content
Failapplet with fallback contentReadingEmbedded objectFallback content not read, although it's visible on screen, no indication of applet content.
Failapplet with aria-labelledby attributeReading Nothing Nothing voiced for applet - no indication it exists
Failembed with title attributeReadingEmbedded object, unnamed_view_0Title not read, no description of non-text content.
Failembed with aria-labelledby attributeReadingEmbedded object, unnamed_view_0No description of non-text content.
Failobject with fallback contentReadingEmbedded objectFallback content not read, no description of non-text content
Failobject with title attributeReadingEmbedded objectTitle not read, no description of non-text content
Failobject with aria-labelledby attributeReadingEmbedded objectNo description of non-text content
Failaudio with aria-label attributeReading Nothing Nothing voiced for audio - no indication it exists
Failaudio with aria-labelledby attributeReading Nothing Nothing voiced for audio - no indication it exists
Failaudio with title attributeReading Nothing Nothing voiced for audio - no indication it exists
Failvideo with aria-labelledby attributeReadingVideoNo description of non-text content
Worseiframe with title attributeTabbingOne thousand two hundred and thirty four dot HTML, frame, this is an, example hyperlink, link, in the target page. Example hyperlink, link.Frame SRC URL gibberish is voiced if IFRAME has a non-empty title attribute.
Failabbr with titleReadingT L NABBR expansion ignored.
Failbutton containing img with aria-labelledbyTabbingButtonNothing indicates button function
Worseinput type=image with aria-labelledby attributeTabbingButtonReads "button" without saying what button does.
Failinput type=text with title attributeReadingEditDoesn't read title in Reading mode
Failinput type=text with aria-label attributeReadingEditDoesn't read aria label in Reading mode
Worsefieldset containing linksTabbingHome link. About link. Contact link.Legend not read when tabbing forward, but is read when shift-tabbing backwards.
Failimg with aria-labelledbyReadingThis is an aria labelled byImage ignored.
Failarea and img with alt attributesTabbing Nothing Complete silence when tabbing between AREAs.
Failarea with alt attribute and img with null altTabbing Nothing Complete silence when tabbing between AREAs.
Failarea with title attributeTabbing Nothing Complete silence when tabbing between AREAs.
Failarea with aria-label attributeTabbing Nothing Complete silence when tabbing between AREAs.
Worsearea with aria-labelledby attributeReadingGraphic, this is alt text, link, link, this is left aria labelled by text, this is right aria labelled by textlink text blank, labels read out after links
Failarea with aria-labelledby attributeTabbing Nothing Complete silence when tabbing between AREAs.
FailClick Here link with title attributeTabbingClick here, linktitle ignored
WorseLink text replaced by aria-labelledby attributeTabbingClick here, linkaria-labelledby ignored
FailData table with role=columnheader headers but no thReadingMorning. Afternoon. Free. Busy.Table treated as layout table - not announced as table, and no headers read.
FailData table with th scope on cell headersReading Table with 4 rows and 5 columns, contact information. Row 1, column 1. Column 2, name. Column 3, phone number. Column 4, fax number. Column 5, city. Row 2, column 1, one. Name, column 2, Joel Garner. Phone number, column 3, 412 212 5421. Fax number, column 4, 412 212 5400. City, column 5, Pittsburgh Column headers, but no row headers, announced for TD cells.
FailData table with td headers attributeReading Table with 3 rows and 7 columns, row 1 through 2 column 1, homework. Homework, row 1 column 2 through 4, exams. Column 5 through 7, projects. Row 2, exams, column 2, one. Exams, column 3, two. Exams, column 4, final. Projects, column 5, one. Projects, column 6, two. Projects, column 7, final. Homework, row 3, homework, column 1, fifteen percent. Exams, column 2, fifteen percent. Exams, column 3, fifteen percent. Exams, column 4, twenty percent. Projects, column 5, ten percent. Projects, column 6, ten percent. Projects, column 7, fifteen percent. Only first row TH read, table structure incomprehensible.
FailPDF18 Document with doc titleReadingSlash SR_PDF_doc_title.pdfVoices full URL instead of title

Passing tests

 TestModeWhat the user hearsNotes
PassPage with lang set on the html and p elementsReadingAct-eef tab-le. Rah-di-oh.Pronounced as French and German.  
BetterARIA role=headingHeadingFirst level heading, heading level 1. Second level heading, heading level 2.  
PassHeading is img with altHeadingSecond level alt, graphic heading level 2.  
Passapplet with aria-label attributeReadingEmbedded object, ARIA label for applet  
Passapplet inside figure with figcaption elementReadingEmbedded object. Figure caption for appletFIGCAPTION is read out.  
Passembed inside figure with figcaptionReadingEmbedded object, unnamed_view_0. Figure caption for embed.Reads out FIGCAPTION  
Passembed with aria-label attributeReadingEmbedded object, ARIA label for embed.  
Passobject with aria-label attributeReadingEmbedded object, ARIA label for objectVoices ARIA-LABEL attribute  
Passvideo with aria-label attributeReadingVideo aria label  
Passvideo with title attributeReadingVideo, video title  
Passa element placeholder link with no event handler or href attributeReadingPlaceholder text  
Passa element placeholder link with no event handler or href attributeTabbing Nothing Skipped when tabbing, as expected  
Passiframe with fallback contentReadingFrame, this is an, link, example hyperlink in the target page. Out of frame.IFRAME alternative content ignored, and doesn't appear in the DOM.  
Passiframe with fallback contentTabbingFrame, this is an, example hyperlink, link, in the target page. Example hyperlink, link.Fallback content is ignored  
Passiframe with title attributeReadingFrame, this is an, link, example hyperlink in the target page. Out of frame.IFRAME title ignored.  
Betterbutton containing img with altReadingButton graphic, this is image alt  
Betterbutton containing img with altTabbingThis is image alt, graphic button  
Betterbutton containing img with title attributeReadingButton graphic, this is image title  
Betterbutton containing img with title attributeTabbingThis is image title, graphic button  
Betterbutton containing img with aria-labelReadingButton graphic, this is image aria label  
Betterbutton containing img with aria-labelTabbingThis is image aria label, graphic button  
Passbutton containing img with aria-labelledbyReadingButton, this is an aria labelled by  
Passbutton with title containing img with null altReadingButton, this is button title  
Passbutton with title containing img with null altTabbingThis is button title, button  
Passbutton with aria-label containing img with null altReadingButton, this is button aria label  
Passbutton with aria-label containing img with null altTabbingThis is button aria label, button  
Passinput type=image with altReadingButton, this is image button alt text  
Passinput type=image with altTabbingThis is image button alt text, button  
Passinput type=image with title attributeReadingButton, this is image button title text  
Passinput type=image with title attributeTabbingThis is image button title text, button  
Passinput type=image with aria-label attributeReadingButton, this is image button aria label text  
Passinput type=image with aria-label attributeTabbingThis is image button aria label text, button  
Passinput type=image with aria-labelledby attributeReadingButton, this is image button aria labelled by text  
Passinput type=text with aria-describedby attributeReadingFirst name, edit, a bit of instructions for this field linked with aria describedby  
Passinput type=text with aria-describedby attributeTabbingFirst name, edit, a bit of instructions for this field linked with aria describedby, blank  
Passinput type=text with title attributeTabbingEnter search text, edit, blank  
Passinput type=text with aria-label attributeTabbingEnter search text, edit, blank  
Passinput type=text with aria-labelledby attributeReadingEnter search text, edit  
Passinput type=text with aria-labelledby attributeTabbingEnter search text, edit, blank  
Passinput type=text with label forReadingEnter search text, edit  
Passinput type=text with label forTabbingEnter search text, edit, blank  
Passinput type=text inside label with text before controlReadingEnter search text, edit  
Passinput type=text inside label with text before controlTabbingDocument, enter search text, edit, blank  
Passinput type=text inside label with text after controlReadingEdit, enter search text  
Passinput type=text inside label with text after controlTabbingDocument, enter search text, edit, blank  
Passinput type=text inside label with text before and after controlReadingEnter search text, edit, blanks not allowed  
Passinput type=text inside label with text before and after controlTabbingDocument, enter search text, blanks not allowed, edit, blank  
Passfieldset containing linksReadingLegend for enclosed links, link home, link about, link contact.  
PassYes/No radio buttons inside fieldset elementReadingI agree to terms and conditions, radio button checked, yes, radio button not checked, no. Sign me up to the newsletter, radio button checked, yes, radio button not checked, no.  
PassYes/No radio buttons inside fieldset elementTabbingI agree to terms and conditions grouping, yes radio button checked. Sign me up to the newsletter grouping, yes radio button checked.  
Passimg with null altReading Nothing Ignored as expected  
Passimg with altReadingGraphic, this is alt text  
Passimg with figcaptionReadingViolet, taken on 12/11/2010  
Passimg with titleReadingGraphic, this is title text  
Betterimg with aria-labelReadingGraphic, this is an aria label  
Passarea and img with alt attributesReadingGraphic, this is alt text, link, this is left alt text, link, this is right alt text  
Passarea with alt attribute and img with null altReadingLink, this is left alt text, link, this is right alt text  
Passarea with title attributeReadingGraphic, this is alt text, link, this is left title text, link, this is right title text  
Passarea with aria-label attributeReadingGraphic, this is alt text, link, this is left aria label text, link, this is right aria label text  
PassLink containing img with altReadingLink graphic, this is a link alt  
PassLink containing img with altTabbingThis is a link alt, graphic link  
PassLink containing img with titleReadingLink graphic, this is an image title  
PassLink containing img with titleTabbingThis is an image title, graphic link  
PassClick Here link with title attributeReadingLink, click here  
BetterLink text replaced by aria-label attributeReadingLink, this is an aria label  
BetterLink text replaced by aria-label attributeTabbingThis is an aria label, link  
PassLink text replaced by aria-labelledby attributeReadingLink click here, this is an aria labelled by  
PassClick Here link with aria-describedby attributeReadingLink click here, this is an aria described by  
PassClick Here link with aria-describedby attributeTabbingClick here link, this is an aria described by  
PassLayout table with single cellReadingThis is some text.Treated as a layout table.  
PassLayout table with role=presentationReadingExample. Navigation. Links. Content.Table treated as layout table - not announced as table.  
BetterData table with role=gridReadingTable with two rows and two columns, row one column one, morning. Column two afternoon. Row two, morning, column one, free. Afternoon, column two, busy.  
PassData table with summary and thReadingTable with two rows and two columns, data table summary. Row one column one, morning. Column two afternoon. Row two, morning, column one, free. Afternoon, column two, busy.  
PassData table with caption and thReadingTable with two rows and two columns, data table caption. Row one column one, morning. Column two afternoon. Row two, morning, column one, free. Afternoon, column two, busy.  
PassData table with th cell headersReadingTable with two rows and two columns, row one, column one, morning. Column two, afternoon. Row two, morning, column one, free. Afternoon, column two, busy.  
PassPDF9 Document with headingsReadingHeading 1, heading level 1. Heading 1.2, heading level 2.  
PassPDF1 Image with alt textReadingGraphic, this is alt text  
PassPDF4 Decorative image marked as artifactReading Nothing Image ignored as expected  
PassPDF16 Document default language set to FrenchReadingAct-eef tab-lePronounced as French  
PassPDF19 Phrase language set to GermanReadingRah-di-ohPronounced as German  
PassPDF6 Table with header markupReadingTable with 2 rows and 2 columns, row 1, column 1, morning. Column 2, afternoon. Row 2, morning, column 1, free. Afternoon, column 2, busy.  
PassPDF6 Table with header markup and alt textReadingTable with 2 rows and 2 columns, row 1, column 1, morning. Column 2, afternoon. Row 2, morning, column 1, free. Afternoon, column 2, busy.Word Alt Text and Description not voiced