Windows Narrator HTML Support

A Work in progress: Last updated 10 December 2025.

Editors: Grace Snow, Steve Faulkner

GitHub Repo: screen-reader-HTML-support

Found a bug? Please report it.

How HTML elements are supported by screen readers

Typical support patterns of HTML elements by screen readers:

Note: The combination of patterns supported varies from element to element and support for a particular element varies between screen reader software.

Windows Narrator: quick commands

Narrator key: Caps Lock (or Insert) by default.

  • Start/stop Narrator: Windows + Ctrl + Enter
  • Toggle Scan mode: Narrator + Space
    Scan mode must be turned on to use other keyboard shortcuts.
  • Links: K (next), Shift + K (previous), Narrator + F7 (list all); Popular links & page summary: Narrator + S twice
  • Headings: H (next), Shift + H (previous); Headings list: Narrator + F6
  • Landmarks/regions: Landmarks list: Narrator + F5
  • Forms: E (next edit), Shift + E (previous). Press Space to turn Scan mode off when you need to type; Tab to move between form fields
  • Lists & tables: I / Shift + I (next/previous list item); ,/. to jump to start/end of long lists or tables
  • Images/graphics: G / Shift + G to move between images

Support legend

Windows Narrator (2025) HTML Support Chrome 142.0.7444.176, Edge 142.0.3595.94, and Firefox 145.0.2 (Official Builds), (64-bit) on Windows 11
Element Test Case Represents AURAL UI Interaction Supported Notes
a

a with href test

A hyperlink

"Link", Element content

 

  • List all and search Links: Narrator + F7
  • Next Link: K
  • Previous Link: SHIFT + K
  • Open Link: ENTER
  • Popular links and page summary: Narrator + SS

Link role announced before link text/label.

  • By default, Narrator speaks the accessible name of a link and not its title or description (if present).
  • Descriptions (i.e. aria-describedby) are only announced if the "Read advanced details" checkbox is checked within Narrator settings.
  • Narrator does not announce the link type.
  • Narrator's "Search links" window announces the total number of links on the page and lists them.
a without href a without href test An anchor Element content No special commands

Treated as regular text.


No semantics conveyed or expected as <a> has a role="generic"

abbr abbr test An abbreviation
  • With title or aria-label attributes: Expansion, group, Accronym
  • Without title or aria-label attributes: Accronym only

No special commands

If aria-label present


If title present (not Firefox)


In Firefox with the title attribute

  • No semantics conveyed by default.
  • Treated as a "group" and expansion announced when title or aria-label are present.
    Note, aria-label will "win" in Chrome or Firefox if both attributes are present. Both will be announced if they differ in Edge.
  • Firefox only supports abbr with an aria-label. The title attribute is not supported.
  • Descriptions via aria-describedby are ignored.

Note, expansions are not announced by default and that expansions provided using the title attribute are not available to keyboard only users. Refer to Using the HTML title attribute.

address address test Contact information for a page or article element
  • With accessible name: Element content, accessible name
  • Without accessible name: Element content
No special commands

By default


If aria-label present


In Firefox

  • With accessible name address is announced as a group - accessible name grouping, followed by the content.
  • Descriptions via aria-describedby are ignored.
  • Narrator announces no semantics in Firefox and aria-label is not announced, when present.
area area test Hyperlink or dead area on an image map

"Image", alt content, "graphic", "link", "area", alt content

  • List all and search Links: Narrator + F7
  • Next Link: K
  • Previous Link: SHIFT + K
  • Open Link: ENTER
  • Popular links & page summary: Narrator + SS
  • Navigate through area elements using Narrator + Arrow or Tab keys.
  • In Firefox, link semantics are only announced when browsing interactive elements (i.e. using Tab) and not when using Narrator + Arrow keys
aria-level h7-h10 test

(i.e.role="heading" and aria-level="{7-10}")
Heading levels greater than 6 "Heading level [#]", element content

No special commands for aria-level. General heading commands:

  • Next heading H
  • Previous heading Shift + H
  • List all headings (levels not exposed) Narrator + F6
For levels 1-9 (Chrome and Edge)

For levels 10 or above (Chrome and Edge)

In Firefox

Additional announcement of "at level [#]" is appended when Narrator verbosity settings are set to level 3 ("All control details") or higher.


In Chrome and Edge:

  • Levels 1-9 are announced as expected.
  • Levels 10 and above are announced as "heading" with the element heading level if a heading element is used. For example: <h4 aria-level="10"> is announced as "heading level 4".
  • Levels 10 and above are announced as "heading level 2" if a non-heading element with a "heading" role is used. For example: <div role="heading" aria-level="10"> is announced as "heading level 2".

In Firefox:

  • Element levels are annouced in addition to aria-level.
  • aria-level values of 10 and above are announced.
  • All non-heading elements with a "heading" role are announced as "level 2".
  • Labels provided using aria-label are ignored, and aria-level is not announced when aria-label is used.
article article test Self-contained syndicatable or reusable composition
  • With accessible name: "Article", accessible name, element content
  • Without accessible name: Element content
No special commands With accessible name
You cannot focus on articles themselves, only content within them, as expected. Article semantics are only exposed when an accessible name is present.

  • Accessible names on article elements can be provided via aria-label, aria-labelledby or title attributes.
  • All browsers except Firefox announce the title attribute content twice.
  • Windows Narrator offers no way to navigate between or list all articles like other screen readers
  • Descriptions via aria-describedby are ignored.
aside aside test Landmark for tangentially related content "Complimentary", accessible name (when present), element content
  • Next landmark D
  • Previous landmark SHIFT + D
  • List all landmarks Narrator + F5
  • Can receive screen reader focus
  • Announced as "complementary" whether or not an accessible name is provided, as expected for landmarks
audio audio test Audio player
  • With accessible name: "Audio", accessible name (announces controls as navigated).
  • Without accessible name: "Audio" (announces controls as navigated).
The audio element is focusable with Tab by default.

If the audio element has a controls attribute the buttons in the UI are navigable using button commands.
Controls in the audio player are accessible.
  • Firefox announces audio elements with a "Group" role.
  • Descriptions (i.e. aria-describedby) are only announced if the "Read advanced details" checkbox is checked within Narrator settings.
b b test Text bolded for utilitarian purposes Element content No special commands Refer to: Screen Readers support for text level HTML semantics
base No test Base URL and default target browsing context for hyperlinks and forms None expected No special commands No UI
bdi bdi test Text directionality isolation Element content No special commands No aural impact; structure-only element.
bdo bdo test Text directionality formatting Element content No special commands No special semantics conveyed. Reads text correctly regardless of direction.
blockquote blockquote test A section quoted from another source With accessible name:
Accessible name, element content

Without accessible name:
Element content
No special commands The blockquote role is not announced.

The cite attribute content is not announced (as expected)
body body test Document body Element content No special commands

No semantics conveyed or expected

br br test Line break, e.g. in poem or postal address "Space" No special commands

Firefox ignores line breaks (no announcement by Narrator)

button button test Button control Accessible name, "button"

With state: Accessible name, "button", state
(If aria-disabled or aria-expanded present)

Toggle button: Accessible name, "toggle button", On/Off
(If aria-pressed present)
  • Next button B
  • Previous button SHIFT + B
For buttons, disclosure buttons and toggle buttons

For popup buttons

Semantics always conveyed, whether or not accessible name is present (via content or aria-label).

  • Supported attributes: aria-disabled, aria-expanded, aria-pressed
  • Unsupported attributes: aria-haspopup
  • There are duplicate announcements in Firefox when aria-label is used and navigating button-by-button.
  • Firefox announces "on/off" state with a "button" role (not "toggle button") when aria-pressed is used.
canvas canvas test Scriptable bitmap canvas "Image" element content No special commands

The canvas is 'transparent' for screen reader users. HTML content included in the HTML5 canvas sub DOM is announced and navigable by screen reader users and is navigable by keyboard users.


Note: advised to add role=presentation to <canvas> to avoid unecssary repetition of graphic role information.

caption caption test Table caption Caption content, "table", "[# rows] by [# columns]" (e.g. "4 by 8")
  • Next Table T
  • Previous Table SHIFT + T
Caption is announced when navigating to a table
cite cite test Reference to a creative work Element content No special commands

No semantics conveyed or expected as <cite> has a role="generic"

code code test Computer code Element content No special commands

No semantics conveyed or expected as <code> currently has a role="generic"

col No test Table column None expected No special commands No semantics conveyed
colgroup colgroup test Group of columns in a table None expected No special commands
data data test Machine-readable equivalent Element content No special commands

No semantics conveyed or expected as <data> has a role="generic"

datalist datalist test Container for options for combo box control

Label content, "combo, edit, has popup, suggestion available."

  • Next Combo Box C
  • Prior Combo Box SHIFT + C

No datalist role announced (as expected), only options within it are announced on focus using arrow keys.


Firefox announces "collapsed" whether or not suggestions are visible.

dd dd test Definition content for corresponding dt (term) element Element content No special commands

Included as part of <dt> list item. User must use ArrowDown to announce definition content.


If user navigates via list item navigation (For example, pressing I to go to the next item in a list) then <dd> content will be skipped.


The "definition" role is not exposed unless the element has an accessible name (e.g. aria-label).

del del test A removal from the document

Element content

No special commands

There is no indication that text has been deleted.


Refer to: Screen Readers support for text level HTML semantics

details details test Disclosure widget container
  • With accessible name: Accessible name, "details" (followed by summary content)
  • Without accessible name: Summary content (details element is not announced)
No special commands

No announcement expected, unless accessible name is present.


Refer to summary element

dfn dfn test Defining instance of a term Element content No special commands

No semantics conveyed


Note intentional non-support across screen readers in conclusion to JAWS tracker Issue 821 due to perceived unnecessary additional verbosity.

dialog dialog test Modal/Non-modal dialog: Represents a transitory part of an application, in the form of a small window ("dialog box") Accessible name (if present), "dialog", first focusable element content and role

Modal dialogs: Esc closes the dialog by default and returns focus to the triggering control


Non-modal dialogs: No special commands by default.

  • When the dialog opens, focus moves to first focusable element, if present, otherwise focus moves to the dialog element itself.
  • Focus is contained within modal dialog implementations, but the browser address bar is included within the focus order. This is browser implemented behaviour.
  • When the dialog closes, focus returns to the control that opened it.
  • If multiple modal dialogs are open, pressing the Esc only closes the last shown dialog. This is browser implemented behavior.
  • Non-modal dialogs do not close on Esc or "click outside" by default. Close behaviour can be managed via the closedby attribute. See MDN: Dialog element for more on close behaviours
div div test Generic flow container Element content No special commands

No semantics conveyed or expected

dl dl test Association list consisting of name-value groups First <dt> element content, "List of #"
  • Next list L
  • Previous list SHIFT + L
  • Next list item I
  • Previous item in a list SHIFT + I
In Chrome and Edge

In Firefox

In Chrome and Edge, the <dl> is identified as a list and the number of <dt> items is announced.


In Firefox, the <dl> is identified as a list with zero items. If a <dd> contains a link that is announced before its definition and other definitions are skipped. In continuous reading mode, all definitions are skipped.

dt dt test Legend for corresponding dd element(s) Element content
  • Next list item I
  • Previous Item in a List SHIFT + I
In Chrome and Edge

In Firefox

In Chrome and Edge, the <dt> identified as a list item. The "definition" role is not exposed unless the element has an accessible name (e.g. aria-label).


In Firefox, definitions are not announced. If a <dd> contains a link that is announced before its definition and other definitions are skipped. In continuous reading mode, all definitions are skipped.

em em test Stress emphasis Element content No special commands

No semantics conveyed. Refer to: Screen Readers support for text level HTML semantics

embed embed test Plugins

No special commands

Announcements will vary, depending on embedded content.
fieldset fieldset test Group of form controls

Focusing on control inside: Control label and role, legend content, "Group"


No special commands

Requires an accessible name via <legend>, aria-label or aria-labelledby. If no accessible name is provided, no group semantics are conveyed.


Accessible name and "group" role is announced on initial focus inside the group (e.g. on focus of the first control child). The <fieldset> itself is not focusable.

figcaption figcaption test Caption for figure Element content No special commands

"Caption" role is not announced.


Article How do you figure? includes Windows Narrator support notes.

figure figure test Figure with optional caption Element content, graphic (if an image), figcaption content (if present) No special commands

Article How do you figure? includes Windows Narrator support notes.

footer footer test Footer for a page or section "Footer, content information landmark", accessible name (if present)
  • Next landmark D
  • Previous landmark SHIFT + D
  • List all landmarks Narrator + F5

Announced as "section footer" when used inside a region and given an accessible name (e.g. aria-label)

form form test User-submittable form With accessible name: Accessible name, "form"

Becomes a landmark when <form> has an accessible name

  • Next landmark D
  • Previous landmark SHIFT + D
  • List all landmarks Narrator + F5

No semantics conveyed unless form has an accessible name, then exposed as a "Form" landmark.

h1 - h6 h1 - h6 test Section heading "Heading level [#]", element content
  • List all headings (levels not exposed) Narrator + F6
  • Next heading H
  • Previous heading Shift + H
  • Next heading at level [#] - Number keys 1 through 6
  • Prior Heading at level [#] - Number keys SHIFT + 1 through 6

Additional announcement of "at level [#]" is appended when Narrator verbosity settings are set to level 3 ("All control details") or higher.

head No test Container for document metadata None expected No special commands No UI
header header test Introductory or navigational aids for a page or section
  • With accessible name: Accessible name, "banner landmark"
  • Without accessible name: "Banner landmark"
  • Next landmark D
  • Previous landmark SHIFT + D
  • List all landmarks Narrator + F5

Announced as "section header" when used inside a region and given an accessible name (e.g. aria-label)

hr hr test Thematic break "separator" No special commands

The "separator" role is not announced if a <hr> has an accessible name (e.g. aria-label).

html No test Root element None expected No special commands
i i test Alternate voice Element content No special commands No semantics conveyed
iframe

iframe test

iframe with title test

Nested browsing context

"Accessible name" (if present), "document" No special commands

An accessible name is usually provided via the title attribute. When no title is present, Narrator will announce the iFrame document's <title> content.


When no title is provided via either method, only the role "document" is announced.

img img test Image Alt attribute content, "Graphic"
  • Next graphic G
  • Previous graphic SHIFT + G
  • Describe image using an online service CTRL + Narrator + D

"Verbosity Level 3 - All control details" (or higher) is required in Windows Narrator settings to hear the image role, "Graphic", announced. For verbosity level 2 ("some control details") and lower, only the alt text is announced.


If an <img> element is missing an alt attribute, Narrator will announce "To get missing image descriptions, open the context menu" in Chrome and Edge only.

input [button] input [button] test Button control Accessible name, "button", state (when present)
  • Next Button B
  • Previous button B
  • Next form element F
  • Prior form element SHIFT + F

The title attribute content is only announced when "Verbosity Level 3 - All control details" (or higher) is selected in Windows Narrator settings.


Note, form element keyboard shortcuts do not work in Firefox

input [checkbox] input [checkbox] test Checkbox control Label content, "checkbox", state (when present)
  • Next Check Box X
  • Prior Check Box SHIFT + X
  • Next form element F
  • Prior form element SHIFT + F
In Chrome and Edge

In Firefox

Firefox does not announce when a checkbox is required. See related Mozilla Firefox Bug 1766299.


Note, form element keyboard shortcuts do not work in Firefox

input [color] input [color] test Colour picker control Label content / accessible name, "Colour picker", [#]% red, [#]% green, [#]% blue
  • Next form element F
  • Prior form element SHIFT + F

On activation, the control opens the browser's default colour picker dialog.


Chrome and Edge identify <input type="color"> as a colour picker control. Firefox identifies <input type="color"> as a button element. Both are acceptable as their is no corresponding role for Color inputs in the HTML Accessibility API Mapping.


Note, form element keyboard shortcuts do not work in Firefox

input [date] input [date] test Date (day/month year) picker control
  • Focused on the whole date input: Accessible name/label, "datepicker"
  • Focused inside the date input: "Day", Accessible name/label (if present), "spin button", value
  • Next edit control E
  • Prior edit control SHIFT + E
  • Next form element F
  • Prior form element SHIFT + F

The date input is a a composite of multiple spinners. It includes a button to open the browser's default datepicker dialog


Note, form element keyboard shortcuts do not work in Firefox

input [email] input [email] test Text control for inputting email address Accessible name/label, "Edit", state (if present)
  • Next edit control E
  • Prior edit control SHIFT + E
  • Next form element F
  • Prior form element SHIFT + F

Announced as "Edit". Does not announce type of input.


Note, form element keyboard shortcuts do not work in Firefox

input [file] input [file] test File chooser control
  • With accessible name: Accessible name/label, "no file chosen" (or file name), "button", "no file chosen" (or file name)
  • Without accessible name: Default button text (e.g. "Choose file"), "no file chosen" (or file name), "button", "no file chosen" (or file name)
  • Next button B
  • Previous button B
  • Next form element F
  • Prior form element SHIFT + F

The multiple attribute is not announced, when present.

As this is a composite control, it can be navigated to using either button or edit commands.


Note, form element keyboard shortcuts do not work in Firefox

input [hidden] No test Hidden form control None expected No special commands No UI
input [image] input [image] test Button control Accessible name/label, "button", state (when present) sl
  • Next Button B
  • Previous button B
  • Next form element F
  • Prior form element SHIFT + F

Image inputs are "submit" buttons by default. Image inputs should be given an accessible name (e.g. via alt attribute). When present, this is announced instead of "Submit".


Note, form element keyboard shortcuts do not work in Firefox

input [number] input [number] test Spin box control Accessible name/label, "spin button"
  • Increase value UP ARROW
  • Decrease value DOWN ARROW
  • Next form element F
  • Prior form element SHIFT + F

The value is announced when changed via typing or using arrow keys to increase / decrease.


If using form control navigation (scan mode), additional instructions of "Press space to edit" are announced on focus.


Note, form element keyboard shortcuts do not work in Firefox

input [password] input [password] test Text control for inputting a password Accessible name/label, "edit", state (if present)
  • Next edit control E
  • Prior edit control SHIFT + E
  • Next form element F
  • Prior form element SHIFT + F

Note: Keyboard character input is announced as "hidden".


Placeholder text is only announced in Chrome and Edge when Narrator verbosity settings are set to level 3 ("All control details") or higher.


If using form or edit control navigation (scan mode), additional instructions of "Press space to edit" are announced on focus.


Note, the keyboard shortcuts do not work in Firefox

input [range] input [range] test slider control

Accessible name/label, "slider at [#]"
–pause–
"Current value: value", "Minimum value: min value", "Maximum value: max value"

  • Next form element F
  • Prior form element SHIFT + F

When in edit mode (not scan mode):

  • Increase slider value RIGHT ARROW or UP ARROW.
  • Decrease slider value LEFT ARROW or DOWN ARROW.

Slider value is announced as it changes.

Note, form element keyboard shortcuts do not work in Firefox

input [radio] input [radio], test single choice from a set of options

Label content, "Radio button", selected/not selected", state (when present), legend content / group accessible name, "group" (when present)

  • Next radio R
  • Prior radio SHIFT + R
  • Next form element F
  • Prior form element SHIFT + F

When in edit mode (not scan mode):

  • Focus and select next radio input RIGHT ARROW or UP ARROW.
  • Focus and select prior radio input LEFT ARROW or DOWN ARROW.

Group name and role are announced when radios are wrapped in a <fieldset> element with <legend>, or a wrapper with role="radiogroup" and accessible name (e.g. aria-label).

Note, form element keyboard shortcuts do not work in Firefox

input [reset] input [reset] test Button control for resetting a form Accessible name (or "Reset"), "button", state (when present)
  • Next Button B
  • Previous button B
  • Next form element F
  • Prior form element SHIFT + F

Note, form element keyboard shortcuts do not work in Firefox

input [search] input [search] test Text control for inputting search terms

Accessible name/label, "Edit", state (if present)

  • Next edit control E
  • Prior edit control SHIFT + E
  • Next form element F
  • Prior form element SHIFT + F

Announced as "Edit". Does not announce type of input or "searchbox" role.


If using form control navigation (scan mode), additional instructions of "Press space to edit" are announced on focus.


Note, keyboard shortcuts do not work in Firefox

input [submit] input [submit] test Button control for submitting a form Accessible name (or "Submit"), "button", state (when present)
  • Next Button B
  • Previous button B
  • Next form element F
  • Prior form element SHIFT + F

Firefox uses "Submit query" as the default button text if no value attribute is provided.


Note, form element keyboard shortcuts do not work in Firefox

input [tel] input [tel] test Text box control for inputting a phone number Accessible name/label, "Edit", state (if present)
  • Next edit control E
  • Prior edit control SHIFT + E
  • Next form element F
  • Prior form element SHIFT + F

Announced as "Edit". Does not announce type of input.


If using form control navigation (scan mode), additional instructions of "Press space to edit" are announced on focus.


Note, keyboard shortcuts do not work in Firefox

input [text] input [text] test Text edit control Accessible name/label, "Edit", state (if present)
  • Next edit control E
  • Prior edit control SHIFT + E
  • Next form element F
  • Prior form element SHIFT + F

Announced as "Edit". Does not announce type of input.


If using form control navigation (scan mode), additional instructions of "Press space to edit" are announced on focus.


Note, keyboard shortcuts do not work in Firefox

input [time] input [time] test Control for setting a specific time.

Focused inside the time input: "Hours", Accessible name/label (if present), "spin button", value, "timepicker"

  • Next form element F
  • Prior form element SHIFT + F

Hour/Minute values are announced as they change.

The time input is a a composite of multiple spinners. In Chrome and Edge, it includes a button to open the browser's default timepicker dialog

Note, keyboard shortcuts do not work in Firefox

input [url] input [url] test Text control for inputting a URL

Accessible name/label, "Edit", state (if present)

  • Next edit control E
  • Prior edit control SHIFT + E
  • Next form element F
  • Prior form element SHIFT + F

Announced as "Edit". Does not announce type of input or "searchbox" role.


If using form control navigation (scan mode), additional instructions of "Press space to edit" are announced on focus.


Note, keyboard shortcuts do not work in Firefox

ins ins test An addition to the document

Element content

No special commands

There is no indication that text has been inserted.


Refer to: Screen Readers support for text level HTML semantics

kbd kbd test Represents user input Element content No special commands No semantics conveyed
label label test Caption for a form control Label content announced when the programatically linked form control has focus No special commands
legend legend test Caption for fieldset Legend content is announced as the group label for a group of related controls on first focus inside the group. No special commands

Refer to fieldset element


Legend content is not announced if the fieldset element (or group) is labelled by other means.

li ul > li test
and
ol > li test
List item
  • Unordered list item: Bullet", list item content
  • Ordered list item: "Item number", list item content
  • Next list item I
  • Previous list item SHIFT + I

If a list element has an accessible name provided (e.g. via aria-label), then that name is announced after the first list item that receives screen reader focus.

link No test Link metadata None expected No special commands No UI
main main test Main content of a document Accessible name (when present), "Main landmark", accessible description (when present)
  • Main landmark Narrator + N
  • Next landmark D
  • Previous landmark SHIFT + D
  • List all landmarks Narrator + F5
map map test Image map None expected No special commands No UI
mark mark test Highlight
  • With accessible name: "Highlight", accessible name (continue reading command) element content
  • Without accessible name: Element content
No special commands
  • Chrome and Edge: No semantics conveyed unless the <mark> element is given an accessible name.
  • Firefox: No semantics conveyed.
meta No test Text metadata None expected No special commands No UI
meter meter test Gauge
  • With accessible name: Accessible name content
    –pause–
    Description (if present), "Current value: value", "Minimum value: min value", "Maximum value: max value"
  • Without accessible name: "Meter"
    –pause–
    Description (if present), "Current value: value", "Minimum value: min value", "Maximum value: max value"
No special commands

The "meter" role is only announced when the element has no accessible name.

nav nav test Section with navigational links Accessible name (when present), "navigation landmark", accessible description (when present)
  • Next landmark D
  • Previous landmark SHIFT + D
  • List all landmarks Narrator + F5

Accessible description is announced after a brief pause.


In Firefox, the title attribute is not announced if an accessible name is present.

noscript noscript test Fallback content for script

Content of <noscript> element read if JavaScript is not available/enabled

No special commands

Ignored when JavaScript is enabled. Reads content rendered on screen when Javascript not enanabled

object object test Embedded image, nested browsing context, or plugin Depends on format of data file.
  • Next Object Tag O (in < Windows Narrator2018)
  • Previous Object Tag SHIFT + O (in < Windows Narrator2018)
  • note: No navigation keys in Windows Narrator 2018 >

Semantics depend on the type of data file specified in the data attribute.

 
ol ol test Ordered list
  • With accessible name: "Number", accessible name content
  • Without accessible name: "List"
  • Next list L
  • Previous list SHIFT + L
  • Next list item I
  • Previous list item SHIFT + I

If a list element has an accessible name provided (e.g. via aria-label), then that name is announced either on focus of the list element, or after the first list item content when that receives screen reader focus.


Narrator does not announce accessible descriptions on lists in Firefox

optgroup optgroup test Group of options in a list box

First option in optgroup content, selected/not selected state, optgroup label content

No special commands

The optgroup "label" is only announced once on first screen reader focus within the group. It is not repeated for each subsequent option.


The "group" role is not announced.

option option test

Option in a list box or combobox control

Option content, selected/not selected state, optgroup label content (if in an <optgroup> with label attribute)

Navigable using UP/DOWN arrow keys

Option content and its selected state is announced. The "option" role does not need to be announced.

output output test

Calculated output value from a calculation or user input

Output content

No special commands

No semantics conveyed. The output value is auto-announced as expected for elements with a "status" role.

p p test Paragraph Element content
  • Current paragraph CTRL + Narrator + K
  • Next paragraph CTRL + Narrator + L
  • Previous paragraph CTRL + Narrator + J

No semantics conveyed or expected

param (obsolete) No test Parameter for object None expected No special commands No UI
picture No test Container offering alternative versions of an image None expected No special commands No UI
pre pre test Block of preformatted text Element content No special commands

No semantics conveyed or expected as <pre> has a "generic" role.

progress progress test Progress bar

Accessible name (if present), "progress indicator", "Current value: value", "Minimum value: min value", "Maximum value: max value"

No special commands In Chrome and Edge

In Firefox

The <progress> element is not focusable by default, but can be announced as part of the content in reading mode.


Firefox does not announce progress role or values unless it is made focusable with tabindex="0".

q q test Quotation "Double quotation mark", element content, "double quotation mark" No special commands

No semantics conveyed, but double-quote punctuation is auto-added by browsers and this is announced at the start and end of the quote.

rb No test Ruby base element Element content No special commands

No semantics conveyed

rp No test Fallback parenthesis for browsers that don't support Ruby Element content No special commands

No semantics conveyed

rt No test Ruby annotation Element content No special commands

No semantics conveyed

rtc No test Ruby text container Element content No special commands

No semantics conveyed

ruby No test Ruby: Show pronunciation Element content No special commands

No semantics conveyed

samp samp test Computer output Element content No special commands

No semantics conveyed

s s test Inaccurate text Element content

No semantics conveyed

Browsers usually give <s> a strikethrough style because this element is mapped to the "deletion" role.


Refer to: Screen Readers support for text level HTML semantics

script No test Embedded script None expected No special commands No UI
section

section test

region examples

Generic document or application section
  • With accessible name: Accessible name, "region landmark"
  • Without accessible name: Element content
Only when an accessible name is present:
  • Next landmark D
  • Previous landmark SHIFT + D
  • List all landmarks Narrator + F5

No semantics conveyed unless the <section> has an accessible name, which makes it into a landmark.

select select test List box control Accessible name/label (when present), "combobox", selected option content, state
  • Next Combo Box C
  • Prior Combo Box SHIFT + C
  • Next form element F
  • Prior form element SHIFT + F

The expanded/collapsed state is always announced, followed by other states like "required" or "disabled".


Note, keyboard shortcuts do not work in Firefox

small small test Side comment Element content No special commands

No semantics conveyed

source No test Media source for video or audio None expected No special commands No UI
span span test Generic phrasing container None expected No special commands

No semantics conveyed or expected

strong strong test Importance Element content No special commands

No semantics conveyed. It was reported as undesirable by NVDA users in 2015. Refer to: Screen Readers support for text level HTML semantics

style No test Embedded styling information None expected No special commands No UI
sub sub test Subscript Element content No special commands

No semantics conveyed

summary summary test disclosure widget control/label Summary content, "disclosure triangle"/"button", expanded/collapsed state
  • Next Button B
  • Previous button SHIFT + B

Chrome and Edge announce "disclosure triangle", whereas Firefox announces button".

sup sup test Superscript Element content No special commands No semantics conveyed
svg svg test Scalable Vector Graphic Title content (if present) No special commands

No image/graphic semantics conveyed. Narrator announces <title> content (or aria-label) consistently across browsers. Narrator does not announce <desc> content.

table Data table
  • Simple table: Caption content (if present), "table", "[# rows] by [# columns]" (e.g. "4 by 8")
  • Complex table: Caption content (if present), "non-uniform table", "[# rows] by [# columns]" (e.g. "10 by 6")
  • Next Table T
  • Previous Table SHIFT + T
  • Move between cells CTRL + ALT + Arrow keys (in all directions)
In Chrome and Edge

In Firefox

Narrator does not announce the presence of a table in Firefox.

tbody tbody test Group of rows in a data table Element content No special commands

No semantics conveyed or expected

td td test Data cell in a data table
  • Default verbosity (Level 2 - Some control details): Cell content or "Blank cell"
  • Increased verbosity (Level 3 - All control details and higher): Cell content or "Blank cell", "column header", column header content, "column [#] of [#]" (e.g. "column 2 of 5")
  • Move to the first cell in a Row CTRL + ALT + Comma
  • Move to the last cell in a Row CTRL + ALT + Period
  • Move to the first cell in a Column CTRL + ALT + SHIFT + Comma
  • Move to the last cell in a Column CTRL + ALT + SHIFT + Period
  • Current cell's row header CTRL SHIFT + ALT + LeftArrow
  • Current cell's column header CTRL SHIFT + ALT + UpArrow
  • Move between cells CTRL + ALT + Arrow keys (in all directions)
  • Current location in table CTRL + ALT + SHIFT + / (Forward-slash)

Increased verbosity in Narrator settings is required to hear row and column information, including column headers and merged cell details when browsing table contents.


Narrator does not announce row header information while focused on data cells unless using the keyboard shortcuts.


Using Firefox, Narrator does not announce column header information while focused on data cells unless using the keyboard shortcuts. It does announce row number information (e.g. "row 2 of 5") alongside column number information by default.

template No test Template None expected No special commands No UI
textarea textarea test Multiline text field Label content (if present), "Edit", Placeholder or text content, state
  • Next edit control E
  • Prior edit control SHIFT + E
  • Next form element F
  • Prior form element SHIFT + F

The aria-describedby attribute content is only announced when "Verbosity Level 3 - All control details" (or higher) is selected in Windows Narrator settings.


If using form control navigation (scan mode), additional instructions of "Press space to edit" are announced on focus.


Note, keyboard shortcuts do not work in Firefox

tfoot tfoot test Group of footer rows in a data table Element content for each cell No special commands

No semantics conveyed

th th test Header cell in a data table
  • Default verbosity (Level 2 - Some control details): Cell content
  • Increased verbosity (Level 3 - All control details and higher): Cell content "column header", "column [#] of [#]" (e.g. "column 2 of 5")
  • Read row header CTRL SHIFT + ALT + LeftArrow
  • Read column header CTRL SHIFT + ALT + UpArrow
  • Move to the first cell in a Row CTRL + ALT + Comma
  • Move to the first cell in a Column CTRL + ALT + SHIFT + Comma

Increased verbosity in Narrator settings is required to hear row and column information, including column headers and merged cell details, when browsing table contents.


Using Chrome or Edge, Narrator does not announce row headers unless using the keyboard shortcut.


Using Firefox, Narrator announces "Header" for both column and row header cells in all reading modes.

thead thead test Group of header rows in a data table Element content No special commands

No semantics conveyed or expected

time time test Machine-readable equivalent of date- or time-related data "Time", aria-describedby content (if present and correctly linked), Element content No special commands

Narrator announces "Time" before the element content in Chrome and Edge. The role is not conveyed when using Firefox.


Note, if the <time> element is given an accessible name, the "time" role is no longer conveyed.

title No test Document title Title content Read document title Narrator + T

Title is announced on initial page load and via the keyboard shortcut. The browser name and number of open tabs/windows is also announced when using the keyboard shortcut.

tr tr test Data table row "Row"
  • Current row CTRL + SHIFT + ALT + RightArrow
  • Current row's header CTRL SHIFT + ALT + LeftArrow

The "row" role is only announced in Chrome and Edge if using arrow keys to move between the last and first cells in adjacent rows.

track track test Reference to external timed text track Caption content No special commands

The browser defines which type of caption track is supported.

u u test Indicates a non-textual annotation Element content No special commands

No semantics conveyed or expected as <u> has a "generic" role.


Note, the default rendering of the <u> element in visual presentations clashes with the conventional rendering of hyperlinks (underlining). Authors are encouraged to avoid using the u element where it could be confused for a hyperlink.

ul ul test Unordered List
  • With accessible name: "Bullet", accessible name content, description (if present and correctly linked)
  • Without accessible name: "List", description (if present and correctly linked)
  • Next list L
  • Previous list SHIFT + L
  • Next list item I
  • Previous list item SHIFT + I

If a list element has an accessible name provided (e.g. via aria-label), then that name is announced either on focus of the list element, or after the first list item content when that receives screen reader focus.


Narrator does not announce accessible descriptions on lists in Firefox

var var test Variable Element content No special commands

No semantics conveyed or expected

video video test Video Player

"Play", "button", accessible name (if present)
Announces controls as navigated.

The <video> element itself is not announced in Chrome and Edge unless it is made focusable via tabindex="0". In Firefox, the <video> element is focusable by default.


Narrator announces the accessible name on focus of the <video> element, and at the end on focus of the first control.


wbr No test Line breaking opportunity None expected No special commands No UI