Understanding how screen readers work can help you create more accessible websites, documents and digital experiences. This guide introduces screen readers, explains how users interact with digital content and provides instructions for getting started with NVDA, a free screen reader commonly used for accessibility testing. NVDA stands for NonVisual Desktop Access.

What is a screen reader?
A screen reader is an assistive technology that helps people who are blind, low vision, or have certain reading disabilities to use computers, phones, and other devices.
It converts on-screen information into speech, allowing users to navigate and interact with websites, applications, and documents without relying on sight. As users move through content, the screen reader announces text, headings, links, buttons, form fields, images, and other elements, providing information about their purpose and status so users can independently access and use digital content.
How do screen readers interact with websites?
People using a screen reader have web page content and structure presented through speech. Rather than visually scanning the page, they navigate through its elements and listen to information about what is available and where they are within the page. By listening to these elements and their descriptions, users can understand the page layout, locate information, complete tasks, and interact with content independently.
A well-designed website provides clear structure, meaningful labels, and accurate descriptions so screen reader users can efficiently access and use the same information available to sighted users.
What can and cannot screen readers tell users?
A screen reader identifies and announces common website elements such as:
- Headings
- Links
- Buttons
- Form fields
- Images (when alternative text is provided)
- Lists
- Navigation menus
- Tables
However, screen readers can only communicate information that is available as text or properly identified in the underlying code.
NVDA is a free and open-source software available on devices running Windows 10 or later. It can be downloaded from NV Access. Note: You will need administrator credentials to install NVDA.
Before getting started with NVDA
Keep the following tips in mind when getting started:
- To stop NVDA from speaking: Press the Ctrl key.
- To open the NVDA menu: Hold the Insert key and press N. Use the Insert key on the Num Pad and make sure the Num Lock is turned off.
- Give yourself time to adjust to the speech. Screen readers can sound fast and unfamiliar at first. Focus on understanding the key information NVDA announces. As you become more comfortable, you will find it easier to follow the speech and identify accessibility issues.
- Avoid using the mouse while testing. For the most accurate results, navigate using only the keyboard. Many screen reader users cannot rely on a mouse for navigation, so keyboard-only testing better reflects their experience.
- Listen to the entire announcement. NVDA often provides valuable information such as the element type (i.e. button), name (i.e the button’s label), and the element’s state (i.e. pressed). Each piece of information is important for determining the accessibility of an element
- Don’t worry if navigation feels slow at first. Screen reader users develop familiarity with keyboard commands over time. The goal is not to become an expert, but to understand how a user experiences and navigates the content.
Basic NVDA Navigation Commands
Basic NVDA Navigation Commands
- The letter commands in the NVDA Commands column are used to move to the next occurrence of that element type on the page. For example, pressing H moves to the next heading, and pressing B moves to the next button.
- To move to the previous occurrence of an element, hold Shift while pressing the command key. For example, Shift + H moves to the previous heading, and Shift + B moves to the previous button.
- Letter navigation commands only work when NVDA is in Browse Mode.
- Browse Mode is the mode NVDA uses when reading web pages and documents. It allows users to navigate through content without having to navigate sequentially through every item on the page.
- If your cursor is currently inside an input field, text box, or other form control, NVDA may switch to a mode that allows typing into the field instead of navigating the page. To return to Browse Mode, press Insert + N + Space.
Practice Using NVDA
- To get started, open a web browser. Chrome is the recommended browser.
- Start NVDA
- Navigate to https://webaim.org
Use the commands below to explore and navigate the website with NVDA. Practice using these commands on the site until navigating through webpage content feels comfortable and natural.
Now that you have practiced using a screen reader, test your skills on a website of your choice. Use the same commands to explore the page structure, navigate between elements, and evaluate the overall user experience.
| Element Type | What to Look For | Examples | NVDA Command Used |
|---|---|---|---|
| Buttons | Verify buttons have meaningful names that describe the action they perform. | Example: 🛒 Good Example: The button is announced as “Shopping Cart button.” The user immediately understands what action will occur when the button is activated. Bad Example: The button is announced as “Button.” The purpose of the button is unclear without visual context. | B NVDA will read the name of the button. |
| Headings | Verify headings describe the content that follows and they are organized in a logical hierarchy. | Good Example: Heading level 1: “Our Mission” Heading level 2: “About Us” Heading level 3: “Contact Us” Users can understand the page structure and find information efficiently. Bad Example: Heading level 3: “Our Mission” Heading level 1: “About Us” Heading level 4: “Contact Us” The heading structure is poorly designed. See below for more information on heading structure. | H or Insert F7 NVDA will read the heading and the heading level. To see a list of the headings, press Insert + F7 and select Heading. Use the arrow key to move through the heading list. |
| Icons and Images | Verify informative images have meaningful alternative text and decorative images are ignored. | Example 1: 📞 816-515-1212 Good Example: Screen reader announces: “Phone: 816-515-1212” Bad Example: Screen reader announces: “816-515-1212” | G NVDA will read the alt text associated with an image. |
| Links | Verify link text clearly describes the destination or action. Avoid vague text such as “click here” or “read more.” | Good Example: Link text clearly describes the destination: “View Employee Handbook” or “Download Annual Report PDF” or “Contact Human Resources” Bad Example: Link text is: “Click Here” or “Read More” or “Learn More.” When the screen reader generates a list of links, users cannot determine the purpose of the link. | K or Insert + F7 (to see a list of links) Use the arrow keys to move through the list, then press Enter to activate the link. |
| Lists | Verify related information is presented as a list, and list structure is announced correctly. | Example: Keyboard Command for Chrome These keys work across most websites and applications: Tab – Move forward Shift + Tab – Move backward Enter/Return – Follow a link Spacebar – Toggle checkboxes Good Example: Screen reader announces the total number of items in the list, and the item position within the list. “List of 4 items.” “Item 1 Tab – Move forward” “Item 2 Shift + Tab – Move backward” “Item 3 Enter/Return – Follow a link” “Item 4 Spacebar – Toggle checkboxes” Users understand the relationship between items and know how many items exist. Bad Example: Content visually appears as a list but is coded as separate paragraphs. Each item has just an asterisk placed in front of it. The screen reader would read: “Bullet Tab – Move forward” “Bullet Shift + Tab – Move backward” “Bullet Enter/Return – Follow a link” “Bullet Spacebar – Toggle checkboxes” Screen reader does not announce a list, making the relationship between items less clear. | L (move to list) I (move through list items) NVDA will move to the next list. To read the items in the list press down arrow. |
| Page Titles | Verify the page title accurately describes the page content or purpose. | Good Example: Page title: “University of Missouri System” Users immediately know where they are when the page loads or when switching browser tabs. Bad Example: Page title: 151.101.2.216 Users cannot identify the page’s purpose or distinguish it from other open pages. | Insert + T NVDA will read the page title. |
| Element Type | What to Look For | Examples | NVDA Command Used |
|---|---|---|---|
| Landmarks | Verify major page regions, such as navigation, search, main content and footer are identified. | Good Example: Landmarks are properly identified: Banner Navigation Main Search Footer (Content Info) Users can quickly understand major page sections and navigate directly to them. Bad Example: No landmarks are available, or multiple unlabeled regions are announced as: Region Region Region Users cannot determine the purpose of each section. | D NVDA will read the name of the next landmark. |
| Reading Order | Listen to ensure that content is read in a logical order (left to right, top to bottom). | Good Example: Screen reader reads content in a logical sequence: Page banner Main navigation Page body Footer Information is presented in the order needed to understand and complete tasks. The reading order should be left to right, top to bottom within each section of the page. Bad Example: Screen reader reads: Footer Page body Main banner Main navigation Users receive information out of sequence, making the content confusing or difficult to understand. | Press Control + Home (to move to the top of page. Press the down arrow key to move through the page. |
| Tables | The column header should be announced when moving between columns. The row header should be announced when moving between rows, if row headers are present. The cell content should be announced clearly. | T will move to the top of the next table. Once in a table use Control + Alt + an arrow key to move 1 cell or row in a direction. |
Changing some of the NVDA settings may help improve your testing experience. These settings can make NVDA easier to understand, help you track what is being announced, and make it simpler to identify and document accessibility issues. The table below includes several recommended customizations and the steps needed to enable them.
| Customization | Command Sequence |
|---|---|
| Open NVDA Settings | Insert + N → Preferences → Settings |
| Adjust Speech Rate | Insert + N → Preferences → Settings → Speech → Adjust Rate slider |
| Enable Speech Viewer | Insert + N → Tools → Speech Viewer |
| Turn Off Keyboard Echo | Insert + N → Preferences → Settings → Keyboard → Uncheck Speak typed characters and/or Speak typed words |
| Enable Visual Highlighting | Insert + N → Preferences → Settings → Vision → Check Highlight System Focus, Highlight Navigator Object, and Highlight Browse Mode Cursor |
| Save Configuration Changes | Insert + N → Save Configuration |
If you do not like the changes you have made, you can always reset the configuration back to the factory defaults by Insert +N and choose the “Reset to factory defaults” option.
Table Creation Tips
- Provide a Table Caption
Use a descriptive caption to identify the purpose of the table. Screen readers can announce the caption before users begin navigating the table, helping them understand what information the table contains and whether it is relevant to their needs.
- Use Clear Column and Row Headers
Clearly identify column and row headers so users can understand the relationship between the data and its labels. Headers provide essential context for screen reader users. When table headers are properly defined, screen readers announce the associated row or column header along with the data cell value as users navigate through the table. Without headers, screen readers typically announce only the cell’s content, making it difficult or impossible for users to determine what the data represents. This can significantly reduce the usability and comprehension of the table.
- Define the Header Scope
Use row headers (scope=”row”) and column headers (scope=”col”) so assistive technologies can correctly associate data cells with their corresponding headers. Screen readers announce the related row and column headers as users navigate through the table, helping them understand the context of each data cell. Without proper header associations, users may hear only the cell contents and not know what the data represents.
- Avoid Merged Cells
Minimize the use of merged cells (colspan and rowspan) because they can make table relationships more complex. Screen reader users often navigate tables cell by cell, and merged cells can make it difficult to determine which header applies to a particular piece of data. Complex table structures may also cause users to lose track of their position within the table.
- Never Use Tables for Layout
Tables should only be used for presenting tabular data, not for visual page layout. Screen readers identify tables as data structures and announce information such as the number of rows and columns. When layout tables are used, users may expect to find data relationships that do not exist, creating confusion and making navigation less efficient.
- Never Nest Tables
Avoid placing one table inside another. Nested tables can make the reading order difficult to follow and significantly increase navigation complexity for screen reader users. Users may have trouble determining when they have entered or exited a table, and understanding the relationship between data cells becomes more challenging. Nested tables can also make it difficult to interpret headers and data associations accurately.
- Avoid Blank Cells When Possible
Blank cells can create confusion because screen readers may announce them as empty or skip them altogether. If a value is unavailable, consider using text such as “N/A” or “No data” to clearly communicate the absence of information.
- Do Not Rely on Color Alone
If color is used to indicate status (such as red for “Out of Stock” and green for “In Stock”), provide text indicators as well. Screen reader users do not receive color information unless it is conveyed programmatically or through text.
Table Reading Commands
| NVDA Command | Action |
|---|---|
| T | will move to the next table. If a caption is present, focus will move to the caption. Press Down arrow to navigate into the table. |
| Control + Alt + Right arrow | Moves to the next cell in the row |
| Control + Alt + Left arrow | Moves to the previous cell in the row |
| Control + Alt + Down arrow | Moves to the cell below |
| Control + Alt + Up arrow | Moves to the cell above |
To practice reading a table, navigate to the following page and use the commands listed above: Practice Tables