User agent reliability for NVDA Firefox Screen reader compatibility

Last updated: October 16, 2016

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

Latest version tested

NVDA 2016.2 with FF48

Failing tests

 TestModeWhat the user hearsNotes
WorseAPPLET with ARIA-LABEL attributeReadingClickable button. A plugin is needed to display this content. Button, hide plugin.No description of non-text content
WorseAPPLET with ARIA-LABELLEDBY attributeReadingClickable button. A plugin is needed to display this content. Button, hide plugin.No description of non-text content
WorseEMBED with ARIA-LABEL attributeReadingIframe, button play. Button mute. Out of iframe.No description of non-text content.
WorseEMBED with ARIA-LABELLEDBY attributeReadingIframe, button play. Button mute. Out of iframe.No description of non-text content.
FailOBJECT with fallback contentReadingBlankNothing voiced for object - no indication it exists
FailOBJECT with ARIA-LABEL attributeReading Nothing Nothing voiced for object - no indication it exists
FailOBJECT with ARIA-LABELLEDBY attributeReading Nothing Nothing voiced for object - no indication it exists
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
FailVIDEO with ARIA-LABEL attributeReading Nothing Nothing voiced for video - no indication it exists
FailVIDEO with ARIA-LABELLEDBY attributeReading Nothing Nothing voiced for video - no indication it exists
WorseIFRAME with fallback contentTabbingSilence. Iframe, example hyperlink, link.Silence when tab focus stops on iframe.
WorseIFRAME with titleTabbingSilence. This is an iframe title, iframe, example hyperlink, link.Silence when tab focus stops on iframe.
FailINPUT type=text with TITLE attributeReadingEdit, auto completeDoesn't read title in Reading mode
FailINPUT type=text with aria-label attributeReadingEdit, auto completeDoesn'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.
WorseAREA with ALT attributeReadingGraphic, this is alt text, this is alt textNo indication AREA links exist
FailAREA with TITLE attributeReadingGraphic, this is alt text.No indication AREA links exist
FailAREA with TITLE attributeTabbingSlash left arrow dot HTM, link. Slash right arrow dot HTM, link.Link URLs read out each time user tabs.
WorseAREA with aria-label attributeReadingGraphic, this is alt text, this is alt textNo indication AREA links exist
WorseAREA with aria-labelledby attributeReadingGraphic, this is alt text, this is alt text, this is left aria labelled by text, this is right aria. Labelled by text.No indication AREA links exist
FailData table with role rowheader headers but no THReadingMorning. Afternoon. Free. Busy.Table treated as layout table - not announced as table, and no headers read.
FailData table with TH row/columns headers with SCOPEReading 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.

Passing tests

 TestModeWhat the user hearsNotes
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.  
BetterAPPLET with fallback contentReadingFallback content for applet  
PassAPPLET inside FIGURE with FIGCAPTION elementReadingClickable button. A plugin is needed to display this content. Button, hide plugin. Figure caption for applet.  
PassEMBED inside FIGURE with FIGCAPTIONReadingIframe, button play. Button mute. Out of iframe. Figure caption for embed.  
PassIFRAME with fallback contentReadingIframe, this is an, link, example hyperlink in the target page. Out of iframe, blank.Fallback content is ignored  
PassIFRAME with titleReadingIframe, this is an, link, example hyperlink in the target page. Out of iframe, blank.  
BetterABBR with titleReadingEt cetera  
PassBUTTON wraps only an IMG with an ALT attributeReadingButton graphic, this is image alt  
PassBUTTON wraps only an IMG with an ALT attributeTabbingThis is image alt, graphic button  
PassBUTTON wraps IMG with TITLE attributeReadingButton graphic, this is image title.  
PassBUTTON wraps IMG with TITLE attributeTabbingThis is image title, graphic button.  
PassBUTTON wraps IMG with aria-labelReadingButton graphic, this is image aria label.  
PassBUTTON wraps IMG with aria-labelTabbingThis is image aria label, graphic button.  
PassBUTTON wraps IMG with aria-labelledbyReadingButton graphic, this is an aria labelled by, this is an aria labelled by  
PassBUTTON wraps IMG with aria-labelledbyTabbingThis is an aria labelled by, graphic button.  
PassBUTTON with TITLE wraps IMG with null ALTReadingButton, this is button title  
PassBUTTON with TITLE wraps IMG with null ALTTabbingThis is button title, button  
PassBUTTON with aria-label wraps IMG with null ALTReadingButton, this is button aria label  
PassBUTTON with aria-label wraps IMG with null ALTTabbingThis is button aria label, button  
PassINPUT type=image with ALT attributeReadingButton, this is image button alt text  
PassINPUT type=image with ALT attributeTabbingThis 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, auto complete, a bit of instructions for this field linked with aria describedby  
PassINPUT type=text with aria-describedby attributeTabbingFirst name, edit, auto complete, a bit of instructions for this field linked with aria describedby, blank  
PassINPUT type=text with TITLE attributeTabbingEnter search text, edit, auto complete, blank  
PassINPUT type=text with aria-label attributeTabbingEnter search text, edit, auto complete, blank  
PassINPUT type=text with aria-labelledby attributeReadingEnter search text, edit, auto complete  
PassINPUT type=text with aria-labelledby attributeTabbingEnter search text, edit, auto complete, blank  
PassINPUT type=text with LABEL FORReadingEnter search text, edit, auto complete  
PassINPUT type=text with LABEL FORTabbingEnter search text, edit, auto complete, blank  
PassINPUT type=text inside LABEL with text before controlReadingClickable, enter search text, edit, auto complete  
PassINPUT type=text inside LABEL with text before controlTabbingEnter search text, edit, auto complete, blank  
PassINPUT type=text inside LABEL with text after controlReadingClickable, edit auto complete, enter search text  
PassINPUT type=text inside LABEL with text after controlTabbingEnter search text, edit, auto complete, blank  
PassINPUT type=text inside LABEL with text before and after controlReadingClickable, enter search text, edit auto complete, blanks not allowed  
PassINPUT type=text inside LABEL with text before and after controlTabbingEnter search text, blanks not allowed, edit, auto complete, blank  
PassFIELDSET containing linksReadingLegend for enclosed links. Link home, link about, link contact.  
PassYes/No radio buttons inside FIELDSETReadingI agree to terms and conditions. Clickable radio button checked, yes, clickable radio button not checked, no. Sign me up to the newsletter. Clickable radio button checked, yes, clickable radio button not checked, no.  
PassYes/No radio buttons inside FIELDSETTabbingI 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 ALT attributeReading 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  
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  
BetterAREA with ALT attributeTabbingThis is left alt text, link. This is right alt text, link  
BetterAREA with aria-label attributeTabbingThis is left aria label text, link. This is right aria label text, link  
BetterAREA with aria-labelledby attributeTabbingThis is left aria labelled by text, link. This is right aria labelled by text, link  
PassA link wraps IMG with ALTReadingLink graphic, this is a link alt  
PassA link wraps IMG with ALTTabbingThis is a link alt, graphic link  
PassA link wraps IMG with TITLEReadingLink graphic, this is an image title  
PassA link wraps IMG with TITLETabbingThis is an image title, graphic link  
PassA "click here" link with TITLE attributeReadingLink, click here  
PassA "click here" link with TITLE attributeTabbingClick here link, this is a link title  
PassA "click here" link with aria-label attributeReadingLink, this is an aria label  
BetterA "click here" link with aria-label attributeTabbingThis is an aria label, link  
PassA "click here" link with aria-labelledby attributeReadingLink, this is an aria labelled by, this is an aria labelled by  
BetterA "click here" link with aria-labelledby attributeTabbingThis is an aria labelled by, link  
PassA "click here" link with aria-describedby attributeReadingLink click here, this is an aria described by  
PassA "click 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 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.  
PassData table with TD HEADERS attributeReading Table with 3 rows and 7 columns, row 1 column 1, homework. Column 2, exams. Column 5, 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.