User agent reliability for NVDA Edge Screen reader compatibility

Screen Readers
Nov 26, 2024

Shows how well NVDA Edge supports ARIA and WCAG sufficient techniques.

Latest version tested

NVDA 2024.4 with Edge 131

  • All tests: 110 pass of 125 tests (88%)
  • ARIA tests: 44 pass of 47 tests (94%)
  • WCAG tests: 74 pass of 86 tests (86%)

Reliability trend

100%80%60%40%20%0%201420152016201720182019202085%202184%202283%202383%202488%

Failing tests

 TestModeWhat the user hearsNotes
WorsePage with xml:lang set on the html and p elementsReadingAct-if tay-bill. Ray-day-oh.Pronounced as English. Ignores xml:lang.
Failapplication/xhtml+xml page with mismatching lang and xml:lang on the html elementReadingGa-raj. Doo-ble. Damm. Un, zwoy, dry-i.Speech pronounced as lang=fr, but CSS matches :lang(de) and German CSS content pronounced as French.
FailMatch lang subtagsReadingDam-he. Dam-he. Daim.lang=de and lang=de-DE pronounced as German, lang=de-AT pronounced as English.
Failembed with title attributeReadingTitle text for embed. Grouping unavailable, menu button, submenu, show more media controls. Out of grouping.Title not read, no 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
Failabbr with titleReadingT L NABBR expansion 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.
FailPDF9 Document with headingsReadingHeading level 2, heading 1.Only finds one heading, reads wrong heading level.
FailPDF4 Decorative image marked as artifactReadingGraphic, unlabeled graphic.Image not ignored as artifact
FailPDF16 Document default language set to FrenchReadingAct-if tay-billPronounced as English, document language ignored
FailPDF19 Phrase language set to GermanReadingRay-day-ohPronounced as English, phrase language ignored
FailPDF6 Table with header markupReadingMorning, afternoon. Free, busy.No table structure voiced.
FailPDF6 Table with header markup and alt textReadingMorning, afternoon. Free, busy.No table structure voiced.

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.  
Passtext/html page with mismatching lang and xml:lang on the html elementReadingGa-raj. Doo-ble. Damm. Un, deux, trois.Speech pronounced as lang=fr, and CSS matches :lang(fr).  
PassARIA 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 title attributeReading Nothing Edge has no applet support, and doesn't render applet on screen unless applet has fallback content  
Passapplet with fallback contentReadingFallback content for appletEdge has no applet support, and doesn't render applet on screen unless applet has fallback content  
Passapplet with aria-label attributeReading Nothing Edge has no applet support, and doesn't render applet on screen unless applet has fallback content  
Passapplet with aria-labelledby attributeReading Nothing Edge has no applet support, and doesn't render applet on screen unless applet has fallback content  
Passapplet inside figure with figcaption elementReadingFigure caption, figure caption for applet. Out of caption, out of figure.Edge does not support applets, and doesn't render applet on screen unless applet has fallback content  
Passembed inside figure with figcaptionReadingFigure grouping unavailable, menu button submenu, show more media controls. Out of grouping, blank. Caption, figure caption for embed. Out of caption, out of figure.Reads out FIGCAPTION  
Betterembed with aria-label attributeReadingARIA label for embed. Grouping unavailable, menu button, submenu, show more media controls. Video time scrubber slider total time 0:05, elapsed time midnight.The text 0:00 is voiced as 'midnight'  
Betterembed with aria-labelledby attributeReadingThis is ARIA-LABELLEDBY text. Grouping unavailable, menu button, submenu, show more media controls. Video time scrubber slider total time 0:05, elapsed time midnight.The text 0:00 is voiced as 'midnight'  
Passobject with fallback contentReadingFallback content for object.Flash is no longer supported by Edge.  
Passobject with title attributeReadingEmbedded object unavailable, title for object.Screen says 'This plug-in isn't supported'  
Passobject with aria-label attributeReadingEmbedded object unavailable, ARIA label for object.Screen says 'This plug-in isn't supported'  
Passobject with aria-labelledby attributeReadingEmbedded object unavailable, this is ARIA-LABELLEDBY text.Screen says 'This plug-in isn't supported'  
Bettervideo with aria-label attributeReadingVideo aria label, grouping, out of grouping.  
Bettervideo with aria-labelledby attributeReadingThis is ARIA-LABELLEDBY text, grouping, out of grouping  
Bettervideo with title attributeReadingVideo title grouping, out of grouping.  
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.Fallback content is ignored  
Passiframe with fallback contentTabbingFrame, example hyperlink, link.  
Passiframe with title attributeReadingThis is an IFRAME title, frame, this is an, link, example hyperlink in the target page. Out of frame.  
Passiframe with title attributeTabbingThis is an iframe title, frame, example hyperlink, link.  
PassInteractive iframe with role=presentation and no accessible nameReadingExample target grouping, this is a link, example hyperlink, in the target pageReads iframe as group role, and reads title element of iframe document  
PassInteractive iframe with role=presentation and no accessible nameTabbingExample target grouping, this is an, example hyperlink, link, in the target page, example hyperlink, linkReads title element and contents of iframe document  
PassInteractive iframe with role=presentation and title attributeReadingThis is frame title, grouping, example target grouping, this is an, link, example hyperlink in the target page.  
PassInteractive iframe with role=presentation and title attributeTabbingThis is frame title, grouping, example target grouping, this an example hyperlink, link, in the target page, example hyperlink, link.  
PassInteractive iframe with role=presentation and aria-label attributeReadingThis is aria-label, grouping, example target grouping, this is an, link, example hyperlink in the target page.  
PassInteractive iframe with role=presentation and aria-label attributeTabbingThis is aria-label, grouping, example target grouping, this an example hyperlink, link, in the target page, example hyperlink, link.  
Passbutton containing img with altReadingButton graphic, this is image alt  
Passbutton containing img with altTabbingThis is image alt, graphic button  
Passbutton containing img with title attributeReadingButton graphic, this is image title  
Passbutton containing img with title attributeTabbingThis is image title, graphic button  
Passbutton containing img with aria-labelReadingButton graphic, this is image aria label  
Passbutton containing img with aria-labelTabbingThis is image aria label, graphic button  
Passbutton containing img with aria-labelledbyReadingButton graphic, this is an aria labelled by, this is an aria labelled by  
Passbutton containing img with aria-labelledbyTabbingThis is an aria labelled by, graphic button.  
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, this is image button aria labelled by text  
Passinput type=image with aria-labelledby attributeTabbingThis is image button aria labelled by text, button  
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 attributeReadingEnter search text, edit  
Passinput type=text with title attributeTabbingEnter search text, edit, blank  
Passinput type=text with aria-label attributeReadingEnter search text, edit  
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 linksReadingGrouping, legend for enclosed links. Link home, link about, link contact. Out of grouping.  
Passfieldset containing linksTabbingLegend for enclosed links, grouping, home link. About link. Contact link.  
PassYes/No radio buttons inside fieldset elementReadingGrouping, I agree to terms and conditions. Radio button checked, yes, radio button not checked, no. Out of grouping, grouping, sign me up to the newsletter. Radio button checked, yes, radio button not checked, no. Out of grouping.  
PassYes/No radio buttons inside fieldset elementTabbingI agree to terms and conditions grouping, yes radio button checked, one of two. Sign me up to the newsletter grouping, yes radio button checked, one of two.  
Passimg with null altReading Nothing Ignored as expected  
Passimg with altReadingGraphic, this is alt text  
Passimg with figcaptionReadingFigure caption, Violet, taken on 12/11/2010.  
Passimg with titleReadingGraphic, this is title text  
Passimg with aria-labelReadingGraphic, this is an aria label  
Passimg with aria-labelledbyReadingGraphic, this is an aria labelled by, this is an aria labelled by  
Passarea and img with alt attributesReadingLink, this is left alt text, link, this is right alt text  
Passarea and img with alt attributesTabbingThis is left alt text, link. This is right alt text, link  
Passarea with alt attribute and img with null altReadingLink, this is left alt text, link, this is right alt text  
Passarea with alt attribute and img with null altTabbingThis is left alt text, link. This is right alt text, link.  
Passarea with title attributeReadingLink, this is left title text, link, this is right title text  
Passarea with title attributeTabbingThis is left title text, link. This is right title text, link  
Passarea with aria-label attributeReadingLink, this is left aria label text, link, this is right aria label text  
Passarea with aria-label attributeTabbingThis is left aria label text, link. This is right aria label text, link.  
Passarea with aria-labelledby attributeReadingLink, this is left aria labelled by text, link, this is right aria labelled by text  
Passarea with aria-labelledby attributeTabbingThis is left aria labelled by text, link. This is right aria labelled by text, link.  
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  
PassClick Here link with title attributeTabbingClick here link, this is a link title  
PassLink text replaced by aria-label attributeReadingLink, this is an aria label  
PassLink text replaced by aria-label attributeTabbingThis is an aria label, link  
PassLink text replaced by aria-labelledby attributeReadingLink, this is an aria labelled by, this is an aria labelled by  
PassLink text replaced by aria-labelledby attributeTabbingThis is an aria labelled by, link  
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.  
PassData 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 role=tableReadingTable with 1 rows and 1 columns. Row 1, columns 1, this is some text.  
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, caption, data table caption. Out of 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.  
PassData table with th scope on cell headersReading Table with 4 rows and 5 columns, caption, contact information. Out of caption, row 1, column 1. Column 2, name. Column 3, phone number. Column 4, fax number. Column 5, city. Joel Garner, 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 in reading mode, but row headers are announced when using table navigation commands.  
PassData table with td headers attributeReading Table with 3 rows and 7 columns, row 1 through 2, column 1, homework. Row 1, 1 column 2 through 4, exams. 1 column 5 through 7, projects. Row 2, exams 1, column 1, one. Exams column 2, two. Exams column 3, final. Projects column 4, one. Projects column 5, two. Projects column 6, final. Row 3, homework, column 1, fifteen percent. Exams one, column 2, fifteen percent. Exams two, column 3, fifteen percent. Exams final, column 4, twenty percent. Projects one, column 5, ten percent. Projects two, column 6, ten percent. Projects final, column 7, fifteen percent. Headers associated with the cell read out before column number.  
PassPDF18 Document with doc titleReadingThis is document title  
PassPDF1 Image with alt textReadingGraphic, this is alt text