User agent reliability for NVDA Firefox Screen reader compatibility

Screen Readers
Nov 26, 2024

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

Latest version tested

NVDA 2024.4 with FF 128

  • All tests: 114 pass of 125 tests (91%)
  • ARIA tests: 44 pass of 47 tests (94%)
  • WCAG tests: 79 pass of 86 tests (92%)

Reliability trend

100%80%60%40%20%0%201484%201576%201671%201778%201878%201978%202084%202187%202287%202387%202491%

Failing tests

 TestModeWhat the user hearsNotes
Page with xml:lang set on the html and p elementsReadingAct-if tay-bill. Ray-day-oh.Pronounced as English. Ignores xml:lang.
application/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.
Match lang subtagsReadingDam-he. Dam-he. Daim.lang=de and lang=de-DE pronounced as German, lang=de-AT pronounced as English.
audio with aria-label attributeReading Nothing Nothing voiced for audio - no indication it exists
audio with aria-labelledby attributeReading Nothing Nothing voiced for audio - no indication it exists
audio with title attributeReading Nothing Nothing voiced for audio - no indication it exists
abbr with titleReadingT L NABBR expansion ignored in screen reader, available to sighted users as dotted underline tooltip links in browser.
area with title attributeReadingThis is alt text, graphic, this is alt text, link, slash left arrow dot HTM. This is alt text, graphic link, slash right arrow dot HTM.Link URLs read out instead of link title
area with title attributeTabbingSlash left arrow dot HTM, link, this is alt text, graphic. Slash right arrow dot HTM, link, this is alt text, graphic.Link URLs read out each time user tabs.
Data table with role=columnheader headers but no thReadingMorning. Afternoon. Free. Busy.Table treated as layout table - not announced as table, and no headers read.
PDF19 Phrase language set to GermanReadingRah-di-ohPronounced as French, using document language, phrase language ignored

Passing tests

 TestModeWhat the user hearsNotes
Page with lang set on the html and p elementsReadingAct-eef tab-le. Rah-di-oh.Pronounced as French and German.  
text/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).  
ARIA role=headingHeadingFirst level heading, heading level 1. Second level heading, heading level 2.  
Heading is img with altHeadingSecond level alt, graphic heading level 2.  
applet with title attributeReading Nothing Firefox 52 removed applet support in 2017, and doesn't render applet on screen unless applet has fallback content  
applet with fallback contentReadingFallback content for appletFirefox 52 removed applet support in 2017, and doesn't render applet on screen unless applet has fallback content  
applet with aria-label attributeReading Nothing Firefox 52 removed applet support in 2017, and doesn't render applet on screen unless applet has fallback content  
applet with aria-labelledby attributeReading Nothing Firefox 52 removed applet support in 2017, and doesn't render applet on screen unless applet has fallback content  
applet inside figure with figcaption elementReadingFigure caption, figure caption for applet. Out of caption, out of figure.Firefox 52 removed applet support in 2017, and doesn't render applet on screen unless applet has fallback content  
embed with title attributeReadingTitle text for embed, frame button play. Button mute. Blank. Out of frame, blank.  
embed inside figure with figcaptionReadingFigure frame, button play. Button mute. Blank. Out of frame, blank. Caption, figure caption for embed. Out of caption, out of figure.  
embed with aria-label attributeReadingARIA label for embed, frame, button play. Button mute. Blank. Out of frame, blank.  
embed with aria-labelledby attributeReadingThis is ARIA-LABELLEDBY text, frame, button play. Button mute. Blank. Out of frame, blank.  
object with fallback contentReadingFallback content for object.Flash is no longer supported by Firefox.  
object with title attributeReading Nothing Nothing displayed on screen and nothing voiced for object  
object with aria-label attributeReading Nothing Nothing displayed on screen and nothing voiced for object  
object with aria-labelledby attributeReading Nothing Nothing displayed on screen and nothing voiced for object  
video with aria-label attributeReadingVideo aria label, grouping, out of grouping.  
video with aria-labelledby attributeReadingThis is ARIA-LABELLEDBY text, grouping, out of grouping  
video with title attributeReadingVideo title grouping, out of grouping.  
a element placeholder link with no event handler or href attributeReadingPlaceholder text  
a element placeholder link with no event handler or href attributeTabbing Nothing Skipped when tabbing, as expected  
iframe with fallback contentReadingFrame, this is an, link, example hyperlink in the target page. Out of frame, blank.Fallback content is ignored  
iframe with fallback contentTabbingFrame, example hyperlink, link.  
iframe with title attributeReadingThis is an IFRAME title, frame, this is an, link, example hyperlink in the target page. Out of frame, blank.  
iframe with title attributeTabbingThis is an iframe title, frame, example hyperlink, link.  
Interactive iframe with role=presentation and no accessible nameReadingThis is a link, example hyperlink, in the target page.role=presentation makes frame seamless  
Interactive iframe with role=presentation and no accessible nameTabbingExample hyperlink, link  
Interactive iframe with role=presentation and title attributeReadingThis is frame title, frame, this is an, visited link, example hyperlink, in the target page.  
Interactive iframe with role=presentation and title attributeTabbingThis is frame title, frame, example hyperlink, visited link.  
Interactive iframe with role=presentation and aria-label attributeReadingThis is aria-label, frame, this is an, visited link, example hyperlink, in the target page.  
Interactive iframe with role=presentation and aria-label attributeTabbingThis is aria-label, frame, example hyperlink, visited link.  
button containing img with altReadingButton graphic, this is image alt  
button containing img with altTabbingThis is image alt, graphic button  
button containing img with title attributeReadingButton graphic, this is image title.  
button containing img with title attributeTabbingThis is image title, graphic button.  
button containing img with aria-labelReadingButton graphic, this is image aria label.  
button containing img with aria-labelTabbingThis is image aria label, graphic button.  
button containing img with aria-labelledbyReadingButton graphic, this is an aria labelled by, this is an aria labelled by  
button containing img with aria-labelledbyTabbingThis is an aria labelled by, graphic button.  
button with title containing img with null altReadingButton, this is button title  
button with title containing img with null altTabbingThis is button title, button  
button with aria-label containing img with null altReadingButton, this is button aria label  
button with aria-label containing img with null altTabbingThis is button aria label, button  
input type=image with altReadingButton, this is image button alt text  
input type=image with altTabbingThis is image button alt text, button  
input type=image with title attributeReadingButton, this is image button title text  
input type=image with title attributeTabbingThis is image button title text, button  
input type=image with aria-label attributeReadingButton, this is image button aria label text  
input type=image with aria-label attributeTabbingThis is image button aria label text, button  
input type=image with aria-labelledby attributeReadingButton, this is image button aria labelled by text, this is image button aria labelled by text  
input type=image with aria-labelledby attributeTabbingThis is image button aria labelled by text, button  
input type=text with aria-describedby attributeReadingClickable, first name, edit has auto complete, a bit of instructions for this field linked with aria describedby  
input type=text with aria-describedby attributeTabbingFirst name, edit, has auto complete, a bit of instructions for this field linked with aria describedby, blank  
input type=text with title attributeReadingEnter search text, edit has auto complete  
input type=text with title attributeTabbingEnter search text, edit, has auto complete, blank  
input type=text with aria-label attributeReadingEnter search text, edit has auto complete  
input type=text with aria-label attributeTabbingEnter search text, edit, has auto complete, blank  
input type=text with aria-labelledby attributeReadingEnter search text, edit has auto complete  
input type=text with aria-labelledby attributeTabbingEnter search text, edit, has auto complete, blank  
input type=text with label forReadingClickable, enter search text, edit has auto complete  
input type=text with label forTabbingEnter search text, edit, has auto complete, blank  
input type=text inside label with text before controlReadingClickable, enter search text, edit has auto complete  
input type=text inside label with text before controlTabbingArticle, enter search text, edit has auto complete, blank  
input type=text inside label with text after controlReadingClickable, edit has auto complete, enter search text  
input type=text inside label with text after controlTabbingArticle, enter search text, edit has auto complete, blank  
input type=text inside label with text before and after controlReadingClickable, enter search text, edit has auto complete, blanks not allowed  
input type=text inside label with text before and after controlTabbingArticle, enter search text, blanks not allowed, edit has auto complete, blank  
fieldset containing linksReadingLegend for enclosed links grouping, legend for enclosed links. Link home, link about, link contact. Out of grouping.  
fieldset containing linksTabbingLegend for enclosed links, grouping, home link. About link. Contact link.  
Yes/No radio buttons inside fieldset elementReadingI agree to terms and conditions grouping, I agree to terms and conditions. Clickable radio button checked, yes, clickable radio button not checked, no. Out of grouping, sign me up to the newsletter grouping, sign me up to the newsletter. Clickable radio button checked, yes, clickable radio button not checked, no. Out of grouping.  
Yes/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.  
img with null altReading Nothing Ignored as expected  
img with altReadingGraphic, this is alt text  
img with figcaptionReadingFigure caption, Violet, taken on 12/11/2010. Out of caption, out of figure.  
img with titleReadingGraphic, this is title text  
img with aria-labelReadingGraphic, this is an aria label  
img with aria-labelledbyReadingGraphic, this is an aria labelled by, this is an aria labelled by  
area and img with alt attributesReadingThis is alt text, graphic, this is alt text, link this is left alt text, link this is right alt text  
area and img with alt attributesTabbingThis is left alt text, link, this is alt text graphic. This is right alt text, link, this is alt text graphic  
area with alt attribute and img with null altReadingGraphic link, this is left alt text, link, this is right alt text.  
area with alt attribute and img with null altTabbingThis is left alt text, link graphic. This is right alt text, link graphic.  
area with aria-label attributeReadingThis is alt text, graphic, this is alt text link, this is left aria label text, link, this is right aria label text.  
area with aria-label attributeTabbingThis is left aria label text, link, this is alt text, graphic. This is right aria label text, link, this is alt text, graphic  
area with aria-labelledby attributeReadingThis is alt text, graphic, this is alt text link, this is left aria labelled by text, link, this is right aria labelled by text.  
area with aria-labelledby attributeTabbingThis is left aria labelled by text, link, this is alt text graphic. This is right aria labelled by text, link, this is alt text graphic.  
Link containing img with altReadingLink graphic, this is a link alt  
Link containing img with altTabbingThis is a link alt, graphic link  
Link containing img with titleReadingLink graphic, this is an image title  
Link containing img with titleTabbingThis is an image title, graphic link  
Click Here link with title attributeReadingLink, click here  
Click Here link with title attributeTabbingClick here link, this is a link title  
Link text replaced by aria-label attributeReadingLink, this is an aria label  
Link text replaced by aria-label attributeTabbingThis is an aria label, link  
Link text replaced by aria-labelledby attributeReadingLink, this is an aria labelled by, this is an aria labelled by  
Link text replaced by aria-labelledby attributeTabbingThis is an aria labelled by, link  
Click Here link with aria-describedby attributeReadingLink click here, this is an aria described by  
Click Here link with aria-describedby attributeTabbingClick here link, this is an aria described by  
Layout table with single cellReadingThis is some text.Treated as a layout table.  
Layout table with role=presentationReadingExample. Navigation. Links. Content.Table treated as layout table - not announced as table.  
Data 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.  
Data table with role=tableReadingTable with 1 rows and 1 columns. Row 1, columns 1, this is some text.  
Data 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.  
Data table with caption and thReadingTable with two rows and two columns, data table caption. 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.  
Data 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.  
Data table with th scope on cell headersReading Table with 4 rows and 5 columns, contact information. Caption, contact information. Out of caption 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 in reading mode, but row headers are announced when using table navigation commands.  
Data table with td headers attributeReading Table with 3 rows and 7 columns, row 1 through 2 column 1, 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. 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.  
PDF18 Document with doc titleReadingThis is document title - SR_PDF_doc_title.pdfVoices PDF document title, and filename part of URL.  
PDF9 Document with headingsReadingHeading level 1, heading 1. Heading level 2, heading 1.2  
PDF1 Image with alt textReadingThis is alt text, figure  
PDF4 Decorative image marked as artifactReading Nothing Image ignored as expected  
PDF16 Document default language set to FrenchReadingAct-eef tab-leDocument pronounced as French, document language applied  
PDF6 Table with header markupReadingTable with 2 rows and 2 columns, column 1, morning. Column 2, afternoon. Row 2, morning column 1, free. Afternoon column 2, busy. Out of table  
PDF6 Table with header markup and alt textReadingTable with 2 rows and 2 columns, alt description for table. Row 1, column 1, morning. Column 2, afternoon. Row 2, morning, column 1, free. Afternoon, column 2, busy. Out of table