Manual testing
Screen Reader Examples
Learn expected screen reader announcements and keyboard notes for NVDA, VoiceOver, and common UI patterns.
How to Use These Examples
Screen reader announcements vary by browser, operating system, verbosity settings, and user preferences. Treat these examples as testing expectations, not exact transcripts.
- Test with keyboard first, then add a screen reader pass.
- Use NVDA with Firefox or Chrome on Windows for common web QA coverage.
- Use VoiceOver with Safari on macOS and iOS when your users include Apple platforms.
- Do not judge accessibility from speech output alone. Also test focus order, visible focus, error recovery, and workflow completion.
Official references
Expected Announcements
These common patterns should expose names, roles, states, and relationships clearly.
Button
Pass
NVDA may announce: "Delete report, button".
Fail
NVDA announces only: "button".
Fix guidance: The button needs an accessible name from visible text, aria-label, or aria-labelledby.
Required form field
Pass
VoiceOver may announce: "Email, required, edit text".
Fail
The field receives focus with no label or required state.
Fix guidance: Use a visible label and native required when the field is required.
Invalid field
Pass
The field announces its label and error text after failed validation.
Fail
The field has a red border but no programmatic error relationship.
Fix guidance: Use aria-invalid and aria-describedby to connect field errors.
Modal dialog
Pass
Focus moves into the dialog, the title is announced, Tab stays inside, and Escape closes it.
Fail
Focus remains behind the modal and screen reader users can reach background content.
Fix guidance: Modal behavior requires focus management, keyboard dismissal, and a clear accessible name.
Tabs
Pass
The active tab is announced as selected and the tab panel is connected to the tab.
Fail
All tabs are announced as ordinary buttons with no selected state.
Fix guidance: Use tablist, tab, tabpanel, aria-selected, and keyboard behavior together.
Status update
Pass
A saved message is announced politely without moving focus.
Fail
Focus jumps unexpectedly to a success toast.
Fix guidance: Use polite status regions for non-urgent updates and avoid stealing focus.
NVDA Testing Notes
NVDA is a strong Windows testing baseline for forms, navigation, page structure, and dynamic updates.
- Use Tab and Shift+Tab for interactive controls.
- Use H and Shift+H to review heading order.
- Use D to move through landmarks when available.
- Use Insert+F7 to review links, headings, and landmarks lists.
- Confirm button names, link purpose, error messages, required states, and selected states.
VoiceOver Testing Notes
VoiceOver helps verify behavior on Apple platforms, especially Safari and mobile gestures.
- Use Control+Option+Right Arrow and Control+Option+Left Arrow to move through items on macOS.
- Use Control+Option+Space to activate the current item.
- Use the rotor to review headings, links, landmarks, and form controls.
- On iOS, swipe right and left to move through elements and double tap to activate.
- Confirm dialogs, menus, and overlays do not leave hidden background content reachable.
Manual Screen Reader Test Script
Use this repeatable flow when reviewing a page before release.
- Load the page and confirm the page title identifies the current view.
- Navigate by headings and confirm the page outline makes sense.
- Navigate by landmarks and confirm main, navigation, header, and footer regions are useful.
- Tab through controls and confirm every control has a useful name and role.
- Submit a form with errors and confirm errors are announced and easy to fix.
- Open and close any modal, menu, accordion, tooltip, or tab interface using only the keyboard.
- Complete the main user workflow without relying on mouse position or visual-only instructions.
