JAWS HTML Support

A Work in progress:
Last updated 9 October 2026.
Editor:
Steve Faulkner
Co-editor:
Graeme Coleman
GitHub Repo:
screen-reader-HTML-support
Found a bug?
Please report it.

How HTML elements are supported by screen readers

Typical HTML element support patterns by screen readers:

Note: The combination of patterns supported varies from element to element. Support for (and announcements of) some elements can vary between screen reader software.

About JAWS

JAWS (Job Access With Speech) is a popular commercial screen reader for Windows. It works with all major browsers including Chrome, Firefox, and Edge.

Licences for JAWS must be purchased, but a free functional trial is available to use for up to 40 minutes at a time.

JAWS: quick commands

JAWS key: Insert (or Caps Lock, configurable) by default.

  • Start/stop JAWS: JAWS + F4
  • Toggle between "Reading" and "Forms" mode: JAWS + Z
    Note: The mode changes other keyboard interactions
  • Read all content: JAWS + ↓
  • Stop reading: Control
  • Elements list:
    • List all links: JAWS + F7
    • List all headings: JAWS + F6
  • Next/previous link: K / Shift + K
  • Next/previous heading: H / Shift + H
  • Next/previous landmark/region: R / Shift + R
  • Main landmark: Q
  • Next/previous form (edit) field: E / Shift + E
  • Tables:
    • Next/previous table: T / Shift + T
    • Navigate table cells: Control + Alt + Arrow keys (→ / ← / ↓ / ↑)
    • Start/end of row: Home / End
    • Start/end of column: Shift + Home / Shift + End
    • Start/end of a table: Control + Home / Control + End
  • Next/previous list: L / Shift + L
  • Next/previous list item: I / Shift + I
  • Next/previous graphic: G / Shift + G

HTML support

Support legend

JAWS HTML support table

JAWS (2026) HTML Support Chrome Version 155.0.8059.40 (Official Build) (64-bit) on Windows 11
Element Test Case Represents AURAL UI Interaction Supported Notes
a

a with href test

 

With href: a hyperlink

 

a with href test results

 

With href:

  • List Links Insert + F7
  • Next Link Tab
  • Prior Link Shift + Tab
  • Next Visited V
  • Prior Visited Link Shift + V
  • Open Link Enter
  • Open Link in New Window Shift + Enter
  • Next Non Link Text N
  • Prior Non Link Text Shift + N

 

With href:

With href:

  • In all cases, JAWS announces the link role
  • In all cases, JAWS announces the link role before the link label when using reading keys like the Arrow keys, but after the link label when using the Tab key
  • In all cases, JAWS announces instructions for activating the link when the link receives focus via the Tab key, but not when the link receives focus via the Arrow keys
  • When a link has both visible text and a title attribute (but no other attributes), JAWS announces the contents of both together
  • JAWS announces the contents of the aria-label attribute when it is applied to the a element, not the visible text
  • JAWS announces the content referenced using the aria-describedby attribute when the link receives focus via the Tab key, but not when the link receives focus via the Arrow keys
  • When a link has different visible text, title text, aria-label text, and content referenced via the aria-describedby attribute, JAWS only announces the content of the aria-label attribute and the content referenced using the aria-describedby attribute; the visible text is not announced (as expected), nor is the content within the title attribute
  • When a link has the same visible text, title text, and aria-label text, JAWS only announces the aria-label text

Link types:

  • Link: This indicates a link that has not been visited.
  • Visited Link: This indicates a link that has been visited. This is determined by your browser history, not by which links have been selected on the current Web page.
  • Same Page Link: This indicates a link that moves you to another location on the same page.
  • Send Mail Link: This indicates a link that opens a new e-mail message using your default e-mail program.
  • FTP Link: This indicates a link that points to a FTP (File Transfer Protocol) server.

Additional notes:

  • The following from the JAWS help documentation does not appear to work and is not required: "By Default, JAWS speaks the on screen text of a link, but you can set JAWS to instead speak Title text, assigned by the page author within the HTML code. Title text normally provides supplemental information about the link".
  • By default, JAWS announces the link type, but you can disable this, so JAWS announces same page links, send mail links, and FTP links as "link," or "Visited Link."

 

 

a without href a with no href test An anchor
a with no href test results
No special commands

Treated as regular text without any link functionality.

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

abbr abbr test An abbreviation
abbr test results

No special commands

 

JAWS can read title text associated with abbreviations and acronyms on web pages.
To enable this feature:

  1. Open the Utilities menu
  2. Select Settings Center
  3. Expand the Web/HTML/PDFs group
  4. Expand the Reading group
  5. Navigate to the Expand Abbreviations option and press Spacebar to check its checkbox
  6. Navigate to the Expand Acronyms option and press Spacebar to check its checkbox

By default

Via preference

No semantics conveyed by default

 

Note that 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
address test results
No special commands

no accessible name

With accessible name

With an explicit accessible name provided using (for example) the aria-label attribute, address is announced as a group.

 

Without an explicit accessible name provided using (for example) the aria-label attribute, the group role is not announced, nor is any other role.
area area test Hyperlink or dead area on an image map
area test results
  • Test AREA-001: area element:
    • Tab key navigation:
      • When navigating into the map from above / below: contents of the alt attribute on the img element, image map, contents of the alt attribute on the area element, image map, link, graphic, to activate press Enter
      • When navigating to individual items within the map: contents of the alt attribute on the area element, image map, link, graphic, to activate press Enter
    • Arrow key navigation:
      • When navigating into the map from above / below: Image map, link, graphic, contents of the alt attribute on the area element
      • When navigating to individual items within the map: Image map, link, graphic, contents of the alt attribute on the area element
  • Test AREA-002: area element with aria-label instead of alt:
    • Tab key navigation:
      • When navigating into the map from above / below: contents of the alt attribute on the img element, image map, contents of the aria-label attribute on the area element, image map, link, graphic, to activate press Enter
      • When navigating to individual items within the map: contents of the aria-label attribute on the area element, image map, link, graphic, to activate press Enter
    • Arrow key navigation:
      • When navigating into the map from above / below: Image map, link, graphic, contents of the aria-label attribute on the area element
      • When navigating to non-start / non-end squares within the map: Image map, link, graphic, contents of the aria-label attribute on the area element
  • List Links Insert + F7
  • Next Link Tab
  • Prior Link Shift + Tab
  • Next Visited Link V
  • Prior Visited Link Shift + V
  • Open Link Enter
  • Open Link in New Window Shift + Enter
  • Next Non Link Text N
  • Prior Non Link Text Shift + N

When navigating into the image map for the first time using the Tab key, JAWS announces the contents of the alt attribute applied to the associated img element. However, it does not announce the contents of this alt attribute when navigating into the image map using the Arrow keys.

 

When navigating into the image map for the first time using the Tab key, JAWS announces the term image map twice: the first time in relation to the associated img element, and a second time in relation to the associated map element. However, it only announces the term image map once when navigating into the map using the Arrow keys.

 

When navigating through individual images in the map using the Tab key, JAWS announces the contents of the alt or aria-label attribute on the area element first, and then announces the element's role and instructions. When navigating through individual images in the map using the Arrow keys, JAWS announces the contents of the element's role and instructions first, and then announces the contents of the alt or aria-label attribute on the area element.

 

From an aural point of view, there is no difference to using the aria-label attribute as opposed to the alt attribute on the area element. JAWS announces both in the same way.

aria-level h7-h9 via aria-level elements heading levels greater than 6
aria-level test results
  • List Headings Insert + F6
  • Next Heading H
  • Prior Heading Shift + H
  • First Heading Alt + Insert + Home
  • Last Heading Alt + Insert + End
  • Next Heading at Level - number keys 1 through 6
  • Prior Heading at Level Shift + 1 through 6
  • First Heading at Level Alt + Ctrl + Insert + 1 through 6
  • Last Heading at Level Alt + Ctrl + Insert + Shift + 1 through 6

All aria-level exported reported as h2, except in a small number of cases.

 

Issue filed: JAWS does not support aria-level on h1-h6

article article test Self-contained syndicatable or reusable composition
article test results
  • Test AR-001: Plain article:
    • O / Shift + O key navigation (navigating to article container only):

      Article

    • Arrow key navigation (navigating to article container and its contents):

      Article, article contents, article end

  • Test AR-002: article with h1:
    • O / Shift + O key navigation (navigating to article container only):

      Article

    • Arrow key navigation (navigating to article container and its contents):

      Article, article contents, article end

  • Test AR-003: article with aria-label:
    • O / Shift + O key navigation (navigating to article container only):

      Contents of the aria-label attribute, article

    • Arrow key navigation (navigating to article container and its contents):

      Contents of the aria-label attribute, article, article contents, contents of the aria-label attribute, article end

  • Test AR-004: article with aria-labelledby:
    • O / Shift + O key navigation (navigating to article container only):

      Contents referenced by the aria-labelledby attribute, article

    • Arrow key navigation (navigating to article container and its contents):

      Contents referenced by the aria-labelledby attribute, article, article contents, contents referenced by the aria-labelledby attribute, article end

  • Test AR-005: article with title attribute:
    • O / Shift + O key navigation (navigating to article container only):

      Contents of the title attribute, article

    • Arrow key navigation (navigating to article container and its contents):

      Contents of the title attribute, article contents, contents of the title attribute element, article end

      Note: the contents of the title attribute are announced after the first word in the body of the article contents is announced, rather than alongside the article role when navigating into the article.

  • Test AR-006: article with aria-describedby:
    • O / Shift + O key navigation (navigating to article container only):

      Article

    • Arrow key navigation (navigating to article container and its contents):

      Article, article contents, article end

      Note: the referenced contents of the aria-describedby attribute are not announced when navigating to the article container, either when using the arrow keys or the O / Shift + O keys.

  • Test AR-007: article with aria-label and title attributes:
    • O / Shift + O key navigation (navigating to article container only):

      Contents of the aria-label attribute, article

    • Arrow key navigation (navigating to article container and its contents):

      Contents of the aria-label attribute on the article element, article, article contents, contents of the aria-label attribute on the article element, article end

      Note: the contents of the title attribute are announced after the first word in the body of the article contents is announced, rather than alongside the article role when the article container receives focus.

  • Test AR-008: article with tabindex="0":
    • O / Shift + O key navigation (navigating to article container only):

      Article

    • Tab key navigation (navigating to article container only):

      article contents, article region

    • Arrow key navigation (navigating to article container and its contents):

      Article, article contents, article end

  • Move to Next Article O
  • Move to Previous Article Shift + O
  • Article List Insert + Ctrl + O

Included as a navigable region < JAWS 2018

 

Possible bug: when the title attribute is applied to the article element, JAWS does not announce the contents of this attribute when navigating into the article. Instead, it announces the contents of this attribute immediately after announcing the first word inside the article. (Test AR-007)

aside aside test Sidebar for tangentially related content
aside test results
  • Test AS-001: Plain aside:
    • R / Shift + R key navigation (navigating to aside container only):

      first line of visible text, complementary information

    • Arrow key navigation (navigating to aside container and its contents):

      visible text

  • Test AS-002: aside with child h1:
    • R / Shift + R key navigation (navigating to aside container only):

      first line of visible text, complementary information

    • Arrow key navigation (navigating to aside container and its contents):

      visible text

  • Test AS-003: aside with aria-label attribute:
    • R / Shift + R key navigation (navigating to aside container only):

      first line of visible text, contents of the aria-label attribute, complementary information

    • Arrow key navigation (navigating to aside container and its contents):

      visible text

  • Test AS-004: aside with aria-labelledby:
    • R / Shift + R key navigation (navigating to aside container only):

      first line of visible text, including structural information, content referenced by the aria-labelledby attribute, complementary information

    • Arrow key navigation (navigating to aside container and its contents):

      visible text

  • Test AS-005: aside with title attribute:
    • R / Shift + R key navigation (navigating to aside container only):

      First word in the visible text, contents of the title attribute, contents of the title attribute, complimentary information

      Notes:

      • The first word in the main body section of the aside is announced
      • The contents of the title attribute are announced twice
    • Arrow key navigation (navigating to aside container and its contents):

      First word in the visible text, contents of the title attribute, remainder of the visible text

      Note: when navigating into the aside container using the Down arrow key:

      • The first word in the main body section of the aside is announced
      • The contents of the title attribute are announced
      • The remaining contents of the aside are announced
  • Test AS-006: aside with aria-describedby:
    • R / Shift + R key navigation (navigating to aside container only):

      Content referenced from the aria-describedby attribute, including structural information, complementary information

    • Arrow key navigation (navigating to aside container and its contents):

      visible text

  • Test AS-007: aside with aria-label and title attributes:
    • R / Shift + R key navigation (navigating to aside container only):

      First word in the visible text, Contents of the title attribute, Contents of the aria-label attribute, complimentary information

      Note: when navigating into the aside container using the R key:

      • The first word in the main body section of the aside is announced
      • The contents of the title attribute are announced
      • The contents of the aria-label attribute are announced
      • Complimentary information is announced
    • Arrow key navigation (navigating to aside container and its contents):

      First word in the visible text, Contents of the title attribute, remainder of the visible text

      Note: when navigating into the aside container using the Down arrow key:

      • The first word in the main body section of the aside is announced
      • The contents of the title attribute are announced
      • The remaining contents of the aside are announced
  • Test AS-008: aside with tabindex="0":
    • R / Shift + R key navigation (navigating to aside container only):

      visible text, complimentary information

    • Arrow key navigation (navigating to aside container and its contents):

      visible text

    • Tab key navigation (navigating to aside container only):

      visible text

  • Move to Next Region  R
  • Move to Previous Region Shift + R
  • Select a Region Insert + Ctrl + R

Included as a navigable region

 

Possible bugs:

An issue occurs when the title attribute is applied to the container aside element:

  • In all cases, an whether the user navigates to the aside container using the R / Shift + R keys or the Arrow navigation keys, JAWS announces the first word inside the aside container before anything else (Test AS-005, Test AS-007)
  • If a user navigates to an aside container that only includes a title attribute using the R / Shift + R keys, JAWS announces the contents of the title attribute twice (Test AS-005)

 

An issue also occurs when the aria-describedby attribute is applied to the container aside element. If a user navigates to an aside container that only includes an aria-describedby attribute using the R / Shift + R keys, JAWS announces structural information about the referenced text (for example, "Heading" to announce that the referenced text is a heading). (Test AS-006)

audio audio test Audio player

Note: the below findings relate to the audio element alone, not the controls inside the player

audio test results
  • Test AU-001: audio element:
    • Arrow key navigation:

      Audio start, audio player controls, audio end

    • Tab key navigation:

      Elapsed time, colon zero colon zero zero one zero zero, mute, group

  • Test AU-002: audio element with aria-label:
    • Arrow key navigation:

      Audio start, group start, contents of the aria-label attribute, audio player controls, group end, contents of the aria-label attribute, audio end

    • Tab key navigation:

      One of the following (refer to notes):

      1. Elapsed time, colon zero colon zero zero one zero zero, mute, group; or
      2. contents of the aria-label attribute, group
  • Test AU-003: audio element with aria-label and aria-describedby:
    • Arrow key navigation:

      Audio start, group start, contents of the aria-label attribute, audio player controls, group end, contents of the aria-label attribute, audio end

    • Tab key navigation:

      One of the following (refer to notes):

      1. Elapsed time, colon zero colon zero zero one zero zero, mute, group; or
      2. contents of the aria-label attribute, group
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.

 

Possible bugs:

  • JAWS does not announced the content referenced by the aria-describedby attribute when the container audio element receives focus (either using reading keys or the Tab key) (Test AU-003)
  • JAWS does not announce the role and accessible name of the player consistently when the audio container receives Tab focus; it sometimes announces the role and state, but other times it announces random content within the player. To resolve this, a user can navigate to the Play button and then press the Shift + Tab keys to navigate back to the container, at which point the correct role and name information is conveyed. (Test AU-001, Test AU-002, Test AU-003)
b b test Text bolded for utilitarian purposes
b test results
No special commands

No semantics conveyed. 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 Test BDI-001: bdi element:

Element content

No special commands
No aural impact; structure-only element.
bdo bdo test Text directionality formatting Test BDO-001: bdo element:

Element content

No special commands
No special semantics conveyed. Reads text correctly regardless of direction.
blockquote blockquote test A section quoted from another source
blockquote test results
  • List Block quotes Ctrl + Insert + Q

Semantics conveyed via reading keys. Semantics are not conveyed when a blockquote with tabindex="0" receives Tab key focus.
body No test Document body Element content No special commands

No semantics conveyed

Is included in focus order in most browsers.

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

No semantics conveyed.

button button test Button control
button test results
  • List Buttons Ctrl + Insert + B
  • Next Button B
  • Previous button Shift + B

Semantics conveyed via navigation and element name.

 

JAWS announces instructions for activating the button ("To activate, press Enter") when it receives focus via the Tab / Shift + Tab keys. However, JAWS does not announce instructions for activating the button when it receives focus via the Arrow or B / Shift + B keys.

 

When the disabled attribute is present on the button, JAWS skips the button entirely when navigating the page using the Tab / Shift + Tab keys and B / Shift + B. However, JAWS announces the name and role of the button, along with its state ("unavailable") when navigating the page using the Arrow keys.

 

When aria-pressed="true" is applied to the button, JAWS announces it as a "toggle button", and the instructions are updated to: "To toggle the state, press Spacebar".

canvas canvas test Scriptable bitmap canvas
canvas test results
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: developers are advised to add role=presentation to canvas to avoid unnecessary repetition of graphic role information.

caption caption test Table caption
caption test results
No special commands

The caption contents are announced by JAWS after it announces the table's structure.

 

The caption contents are used as the table title in the table list (List Tables Ctrl + Insert + T) dialog.

cite cite test Reference to a creative work Test BLK-001: blockquote + cite elements:

visible text

No special commands

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

code code test Computer code
code test results
No special commands

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

 

JAWS announces special characters inside the code element literally, for example it announces "less" for the "<" character and "greater" for the ">" character.

col No test Table column None expected No special commands
No semantics conveyed
colgroup colgroup test Group of columns in a table
colgroup test results
No special commands
No semantics conveyed
data data test Machine-readable equivalent Test DA-001: data element:

visible text

No special commands

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

datalist datalist test Container for options for combobox control
datalist test results
  • Test DI-001: datalist with input: (when data list is expanded and focus moves to the first option using the Down arrow key): autofill list box expanded, visible option text 1 of N, to move to an item press the arrow keys
  • Test DI-002: datalist with input and aria-label: (when data list is expanded and focus moves to the first option using the Down arrow key): autofill list box expanded, visible option text 1 of N, to move to an item press the arrow keys
No special commands
JAWS announces "autofill list box expanded" when navigating into content marked up using the datalist element. The application of the aria-label attribute on the datalist element has no effect; JAWS does not announce the contents of the aria-label attribute as the list's accessible name.
dd dd test Content for corresponding dt element(s)
dd test results
No special commands

No semantics conveyed. JAWS does not distinguish between dt and dd elements. Only the container dl element is announced as a list element.

 

Included as part of dt list item, user must use arrow down for content to be announced. If user navigates via list item navigation (Next Item in a List I) from dt then dd content will not be announced.

del del test A removal from the document
del test results
No special commands Refer to: Screen Readers support for text level HTML semantics
  • JAWS does not announce the contents of the datetime attribute when it is applied to the del element
  • JAWS does not announce any information associated with the cite attribute when it is applied to the del element
  • When tabindex="0" is applied to the del element:
    • JAWS announces both "strikethrough deletion" and "end strikethrough deletion" when it receives Arrow key focus
    • JAWS only announces "strikethrough deletion" when it receives Tab key focus
details details test Disclosure widget container

Test DS-010: details element with aria-label:

Note: no summary element included

  • Arrow key navigation:
    • [When navigating into the group] Group, start, contents of the aria-label attribute
    • [When navigating out of the group] Group, end, contents of the aria-label attribute
  • Tab key navigation:

    contents of the aria-label attribute, group

No special commands

JAWS makes no special announcement when the details element receives focus (either using reading keys or the Tab key) unless the element includes an accessible name.

 

Also refer to the summary element.

dfn dfn test Defining instance of a term
dfn test results
No special commands
No semantics conveyed Refer to JAWS tracker Issue 821
dialog dialog test The dialog element represents a transitory part of an application, in the form of a small window ("dialog box")
dialog test results
When the dialog opens focus is moved to first focusable element. dialog can be closed with the ESC key. Upon closing focus moves back to the trigger control. While displayed focus is contained within the dialog.

Note: focus is contained within the dialog, but the browser address bar is included within the focus order. This is a browser implemented behaviour.

 

Possible bug: when tabindex="-1" is applied to the dialog element, JAWS does not announce the dialog's role or accessible name (if provided). JAWS only announces the contents of the dialog.

div div test Generic flow container
div test results
  • Move to Next Division Z
  • Move to Prior Division Shift + Z
  • List Divisions Ctrl + Insert + Z

No semantics conveyed.

 

As expected, the contents of an aria-label attribute applied to a div element missing an explicit widget, landmark, or img role are not announced.

dl dl test Association list consisting of zero or more name-value groups
dl test results
  • List All Ordered, Unordered, and Definition Lists Ctrl + Insert + L
  • Next List L
  • Previous List Shift + I
  • Next Item in a List I
  • Previous item in a List Shift + I

Refer to: Adrian Roselli: Updated Brief Note on Description List Support - Chrome 131 / JAWS 2025.2412.50

 

Note: JAWS will announce definition list of N items (plural), even when the list only includes a single item.

dt dt test Legend for corresponding dd element(s)
dt test results
  • Next Item in a List I
  • Previous Item in a List Shift + I

No semantics conveyed. JAWS does not distinguish between dt and dd elements. Only the container dl element is announced as a list element.

em em test Stress emphasis
em test results
No special commands No semantics conveyed. Refer to: Screen Readers support for text level HTML semantics
embed embed test Plugins Embedded content No special commands
No semantics conveyed
fieldset fieldset test Group of form controls
fieldset test results
  • Test FLGND-001: fieldset element with legend element:
    • Arrow key navigation to and from fieldset container:

      Group start, legend element text, group contents, group end, legend element text

    • Tab key navigation into fieldset contents:

      JAWS' instructions for operating form controls inside the fieldset, legend element text, group, role, name, state, and any further instructions associated with the first element in the fieldset that receives keyboard focus

  • Test FLGND-002: fieldset element with legend element containing a h2 element:
    • Arrow key navigation to and from fieldset container:

      Group start, heading level [heading level], legend element text, group contents, group end

    • Tab key navigation into fieldset contents:

      JAWS' instructions for operating form controls inside the fieldset, legend element text, group, role, name, state, and any further instructions associated with the first element in the fieldset that receives keyboard focus

  • Test FLGND-003: fieldset element with aria-labelledby, with legend element:
    • Arrow key navigation to and from fieldset container:

      Group start, legend element text, group contents, group end

    • Tab key navigation into fieldset contents:

      JAWS' instructions for operating form controls inside the fieldset, contents of the element referenced by the aria-labelledby attribute on the fieldset element, group, role, name, state, and any further instructions associated with the first element in the fieldset that receives keyboard focus

  • Test FLGND-004: fieldset element, legend element with aria-label:
    • Arrow key navigation to and from fieldset container:

      Group start, contents of the aria-label attribute, group contents, Group end, contents of the aria-label attribute

    • Tab key navigation into fieldset contents:

      JAWS' instructions for operating form controls inside the fieldset, contents of the aria-label attribute, group, role, name, state, and any further instructions associated with the first element in the fieldset that receives keyboard focus

  • Test FLGND-005: fieldset element, no legend element:
    • Arrow key navigation to and from fieldset container:

      group contents

    • Tab key navigation into fieldset contents:

      role, name, state, and any further instructions associated with the first element in the fieldset that receives keyboard focus

No special commands, fieldset presence and accessible name announced when first control child is navigated to using virtual keys navigation keys for the child control.
  • When a fieldset has a legend that does not include additional markup (such as a heading), JAWS announces the group role and the legend text as a single string when navigating into the fieldset using the Down arrow key (Test FLGND-001)
  • When a fieldset has a legend that does include additional markup (such as a heading (Test FLGND-002) or an aria-labelledby attribute (Test FLGND-003)), JAWS only announce the group role when navigating into the fieldset using the Down arrow key; the user must press the Down arrow key a second time to hear the legend text
  • When using the Down arrow key to navigate into a fieldset that includes an aria-labelledby that references content outside of the associated legend, JAWS prioritises and announces the legend text in place of the aria-labelledby referenced text (Test FLGND-003)
  • When using the Tab key to navigate into a fieldset that includes an aria-labelledby that references content outside of the associated legend, JAWS prioritises and announces the aria-labelledby referenced text in place of the legend text (Test FLGND-003)
  • When the aria-label attribute is applied to the legend element, JAWS announces the contents of the aria-label rather than the visible legend text. (Test FLGND-004)
  • When a fieldset is missing an accessible name entirely (either via the legend element or a suitable equivalent, such as the aria-label or aria-labelledby attributes to provide an accessible name), no semantics are conveyed by JAWS (Test FLGND-005)
figcaption figcaption test Caption for figure Test FC-001: figure with figcaption element:

element contents

No special commands
 
figure figure test Figure with optional caption
figure test results
No special commands
  • Role information (group) is only announced when the figure has an accessible name:
    • When the figure receives focus via the Down arrow key, JAWS does not announce the group role when only the figcaption element is present (Test FG-005), and does not announce the group role if the figure element is missing an accessible name altogether (Test FG-001)
    • When the figure receives focus via the Down arrow key, JAWS announces the group role when the aria-label (Test FG-002), aria-labelledby (Test FG-003) or title (Test FG-004 and Test FG-007) attributes are used to provide an accessible name for the figure
  • When the figure receives focus via the Down arrow key, JAWS does not announce the contents referenced by the aria-describedby attribute; the user must navigate to this content separately (Test FG-006)
footer footer test Footer for a page or section
footer test results
  • Move to Next Region  R
  • Move to Previous Region Shift + R
  • Select a Region Insert + Ctrl + R

  • When the body element represents the sectioning content / root of the footer element (Test FT-001):
    • Users can navigate to the region using JAWS' region navigation keys, JAWS announces the footer role ("content information"), and JAWS announces the accessible name and / or accessible description provided for the footer using an appropriate method, such as aria-label, aria-labelledby, or aria-describedby
    • Possible bug: JAWS does not announce the role of the footer when navigating into it using the Down arrow key, nor does it announce the accessible name and / or accessible description provided for the footer using an appropriate method, such as aria-label, aria-labelledby, or aria-describedby
  • When the body element is not the sectioning / root of the footer element, for example it is embedded within an article element (all other tests):
    • Users can not navigate to the region using JAWS' region navigation keys
    • JAWS does not announce the footer role; it only announces the footer element's contents
    • JAWS does not announce the accessible name and / or accessible description provided for the footer using an appropriate method, such as aria-label, aria-labelledby, or aria-describedby, when navigating into the footer using the Down arrow key
  • Possible bug: when the title attribute is applied to the footer element, JAWS does not announce the contents of this attribute when navigating into the footer. Instead, it announces the contents of this attribute immediately after announcing the first word inside the footer. This is possibly because, in the examples used, we have nested the footer inside an article element, and this issue also arises when the title attribute is also applied to the article element (refer to findings related to the article element for further information)
form form test User-submittable form
form test results
  • Move to Next Region  R
  • Move to Previous Region Shift + R
  • Select a Region Insert + Ctrl + R
No semantics conveyed unless form has an accessible name, then exposed as a landmark.
h1 - h6 h1 - h6 test Section heading
h1 - h6 test results
  • List Headings Insert + F6
  • Next Heading H
  • Prior Heading Shift + H
  • First Heading Alt + Insert + Home
  • Last Heading Alt + Insert End
  • Next Heading at Level - number keys 1 through 6
  • Prior Heading at Level Shift + 1 through 6
  • First Heading at Level Alt + Ctrl + Insert + 1 through 6
  • Last Heading at Level Alt + Ctrl + Insert + Shift + 1 through 6

The order in which JAWS announces the heading role and contents is determined by the navigation method used to reach the heading:
  • When navigating through content using JAWS keyboard shortcuts (such as the H / Shift + H keys), JAWS announces the heading contents followed by the heading level
  • When navigating through content using the Down arrow key, JAWS announces the heading level followed by the heading contents
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
header test results
  • Move to Next Region R
  • Move to Previous Region Shift + R
  • Select a Region Insert + Ctrl + R

  • When the body element represents the sectioning content / rooter of the header element (Test HD-001):
    • Users can navigate to the region using JAWS' region navigation keys, JAWS announces the header role ("banner"), and JAWS announces the accessible name and / or accessible description provided for the header using an appropriate method, such as aria-label, aria-labelledby, or aria-describedby
    • Possible bug: JAWS does not announce the role of the header when navigating into it using the Down arrow key, nor does it announce the accessible name and / or accessible description provided for the header using an appropriate method, such as aria-label, aria-labelledby, or aria-describedby
  • When the body element is not the sectioning / root of the header element (all other tests):
    • Users can not navigate to the region using JAWS' region navigation keys
    • JAWS does not announce the header role; it only announces the header element's contents
    • JAWS does not announce the accessible name and / or accessible description provided for the header using an appropriate method, such as aria-label, aria-labelledby, or aria-describedby, when navigating into the header using the Down arrow key
  • Possible bug: when the title attribute is applied to the header element, JAWS does not announce the contents of this attribute when navigating into the header. Instead, it announces the contents of this attribute immediately after announcing the first word inside header. This is possibly because, in the examples used, we have nested the footer inside an article element, and this issue also arises when the title attribute is applied to the title attribute (refer to findings related to the article element for further information)
hr hr test Thematic break
hr test results
  • Test HR-001: hr element:
    • - / Shift + - key navigation:

      Dash, dash, dash, separator

    • Arrow key navigation:

      separator

    • Tab key navigation:

      Not applicable

  • Test HR-002: hr element with aria-label:
    • - / Shift + - key navigation:

      aria-label contents, separator

    • Arrow key navigation:

      aria-label contents, separator

    • Tab key navigation:

      Not applicable

  • Test HR-003: hr element with tabindex="0" and aria-label:
    • - / Shift + - key navigation:

      aria-label contents, separator, min zero, max one hundred

    • Arrow key navigation:

      aria-label contents, separator

    • Tab key navigation:

      aria-label contents, separator, min zero, max one hundred

  • Move to Next Separator -
  • Move to Prior Separator Shift + -

  • If the hr element is missing an accessible name, JAWS will announce the item as "separator" when navigating through page content using the Arrow keys, or "dash, dash, dash, separator" when between separators using the - / Shift + - keys
  • If the hr element has an explicit accessible name, JAWS will announce the accessible name, followed by "separator", regardless of the way that the user navigated to the element
  • Possible bug: If the hr element includes tabindex="0", JAWS will erroneously announce "min zero, max 100" alongside the element's role and (where available) accessible name when the element receives keyboard focus
html No test Root element None expected No special commands  
i i test Alternate voice
i test results
No special commands No semantics conveyed. Refer to: Screen Readers support for text level HTML semantics
iframe

iframe test

iframe with title test

Nested browsing context
iframe test results

 

iframe with title test results
  • List of Frames Insert + F9
  • Next Frame M
  • Previous Frame Shift+M

  • JAWS does not announce a role for the iframe when navigating into its contents using either the M / Shift + M or Down arrow keys
  • If the title attribute is present on the iframe element and is set to a non-null value, and no other attributes providing semantics are included, JAWS will announce the contents of the title attribute alongside the role and name of the first user interface element inside the embedded iframe
  • If the title attribute is not present on the iframe element, or is present and set to null (title=""), and no other attributes providing semantics are included, JAWS will only announce the role and name of the first user interface element inside the embedded iframe
  • If an iframe includes role="presentation" or role="none", JAWS will skip its contents when navigating through the page using the M / Shift + M keys, but may announce its contents when navigating through the page using the Down arrow key, as indicated below
  • If an iframe does not include a title attribute, or if the attribute is set to null (title=""), and role="none" is applied to the iframe (but not aria-roledescription=" "), JAWS will announce the contents of the title element included in the embedded HTML file (where available) when navigating into it using the Down arrow key
  • If an iframe does not include a title attribute, or if the attribute is set to null (title=""), role="none" is applied to the iframe and aria-roledescription=" " is included on the iframe, JAWS will skip the iframe entirely when the user attempts to navigate into it using the Down arrow key
img img test Image
img test results
  • List of Graphics Ctrl + Insert + G
  • Next Graphic G
  • Previous Graphic Shift + G

  • JAWS consistently announces the same content when it encounters an img element, whether via the G / Shift + G keys or via Arrow key navigation (all tests)
  • Unless the image is skipped (because, for example, it includes alt=""), JAWS will always announce the image's role ("graphic") (all tests)
  • If an img element is missing an alt attribute, JAWS will announce the image as "unlabelled" (Test IMG-002)
  • If an image has an alt attribute set to null (alt="") but also includes a non-null non-null title attribute, JAWS will announce the contents of the title attribute but will still announce the image as "unlabelled" (Test IMG-006)
  • If an img element includes both an alt attribute and an aria-label attribute, JAWS will announce the contents of the aria-label attribute, but not the contents of the alt attribute (Test IMG-003, Test IMG-004)
  • If an img element includes both an alt attribute and a title attribute, JAWS will announce the contents of both attributes together (Test IMG-005)
  • If an img element is missing an alt attribute but it includes a non-null title attribute, JAWS will announce the contents of this` attribute in lieu of the missing alt attribute (Test IMG-007); note that this behaviour occurs when a non-null aria-label attribute is included instead of a non-null title attribute
  • JAWS treats img elements that include alt attributes set to null (alt="") and alt attributes that contain whitespace (alt=" ") as decorative images, and (in the absence of any other attributes) will skip the image entirely (Test IMG-008, Test IMG-009)
  • When the contents of both the alt and title attributes are the same, JAWS will only announce the contents of one of these attributes (Test IMG-010)
  • If an img element is missing an alt attribute but it includes a title or aria-label attribute set to null (title="" or aria-label=""), JAWS will announce the image as "unlabelled"
input [button] input [button] test Button control
input [button] test results
  • Test IBTN-001: input type=button element:
    • B / Shift + B key navigation:

      Unlabelled, zero, button

    • Arrow key navigation:

      Unlabelled, zero, button

    • Tab / Shift + Tab key navigation:

      Unlabelled, zero, button, to activate press Enter

  • Test IBTN-002: input type=button element with value="test":
    • B / Shift + B key navigation:

      value attribute contents, button

    • Arrow key navigation:

      value attribute contents, button

    • Tab / Shift + Tab key navigation:

      value attribute contents, button, to activate press Enter

  • Test IBTN-003: input type=button element with value="test" & disabled attribute:
    • B / Shift + B key navigation:

      Not announced - skipped altogether

    • Arrow key navigation:

      value attribute contents, button, unavailable

    • Tab / Shift + Tab key navigation:

      Not announced - skipped altogether

  • Test IBTN-004: input type=button element with value="test" AND title="desc" attribute:
    • B / Shift + B key navigation:

      value attribute contents, title attribute contents, button, title attribute contents

    • Arrow key navigation:

      value attribute contents, title attribute contents, button, title attribute contents

    • Tab / Shift + Tab key navigation:

      value attribute contents, button, title attribute contents, to activate press Enter

  • Test IBTN-005: input type=button element with title="bar" AND label / for wrapped:
    • B / Shift + B key navigation:

      contents of label preceding the button, contents of label following the button, title attribute contents, button, title attribute contents

    • Arrow key navigation:

      contents of label preceding the button, contents of label following the button, title attribute contents, button, title attribute contents

    • Tab / Shift + Tab key navigation:

      contents of label preceding the button, contents of label following the button, button, title attribute contents, to activate press Enter

  • Test IBTN-006: input type=button element with title="bar" AND label wrapped, no for:
    • B / Shift + B key navigation:

      contents of label preceding the button, contents of label following the button, title attribute contents, button, title attribute contents

    • Arrow key navigation:

      contents of label preceding the button, contents of label following the button, title attribute contents, button, title attribute contents

    • Tab / Shift + Tab key navigation:

      contents of label preceding the button, contents of label following the button, button, title attribute contents, to activate press Enter

  • Test IBTN-007: input type=button element with title="bar" AND label / for not wrapped:
    • B / Shift + B key navigation:

      contents of label preceding the button, contents of label following the button, title attribute contents, button, title attribute contents

    • Arrow key navigation:

      contents of label preceding the button, contents of label following the button, title attribute contents, button, title attribute contents

    • Tab / Shift + Tab key navigation:

      contents of label preceding the button, contents of label following the button, button, title attribute contents, to activate press Enter

  • Test IBTN-008: input type=button element with aria-label="boom", title="bar" and label / for not wrapped:
    • B / Shift + B key navigation:

      aria-label contents, title attribute contents, button, title attribute contents

    • Arrow key navigation:

      aria-label contents, title attribute contents, button, title attribute contents

    • Tab / Shift + Tab key navigation:

      aria-label contents, button, title attribute contents, to activate press Enter

  • Test IBTN-009: input type=button element with value="boom", title="bar" and label / for wrapped:
    • B / Shift + B key navigation:

      contents of label preceding the button, contents of label following the button, value attribute contents, button, value attribute contents

    • Arrow key navigation:

      contents of label preceding the button, contents of label following the button, value attribute contents, button, value attribute contents

    • Tab / Shift + Tab key navigation:

      contents of label preceding the button, contents of label following the button, button, value attribute contents, to activate press Enter

  • Test IBTN-010: input type=button element with aria-label="boom", title="bar" and label / for wrapped:
    • B / Shift + B key navigation:

      aria-label attribute contents, title attribute contents, button, title attribute contents

    • Arrow key navigation:

      aria-label attribute contents, title attribute contents, button, title attribute contents

    • Tab / Shift + Tab key navigation:

      aria-label attribute contents, button, title attribute contents, to activate press Enter

  • List Buttons Ctrl + Insert + B
  • Next Button B
  • Previous button Shift + B

  • JAWS consistently announces the same content when it encounters an input type=button element, whether via the B / Shift + B keys or via Arrow key navigation (all tests)
  • When navigating from input type=button to input type=button using the B / Shift + B keys, and when navigating to the button using the Arrow keys, the contents of the title attribute applied to the input type=button are announced twice - once before the "button" announcement, and once after (all tests)
  • Whichever navigation method is used to reach the button, JAWS does not announce the title attribute contents on the input type=button if:
    1. The input type=button is wrapped inside a label and
    2. The label includes content before and after the input type=button (Test IBTN-009)
    Only the label text before and after the button, along with the contents of the value attribute, are announced
  • JAWS only announces instructions for activating the input type=button when the input type=button receives focus via the Tab / Shift + Tab keys(all tests)
input [checkbox] input [checkbox] test Checkbox control
input [checkbox] test results
  • List Check Boxes Ctrl + Insert + X
  • Move To Next Check Box X
  • Move to Prior Check Box Shift + X

  • JAWS consistently announces the same content when it encounters an input type=checkbox element, whether via the X / Shift + X keys or via Arrow key navigation (all tests)
  • If the checkbox is missing any form of labelling, JAWS "guesses" the label based on nearby content (Test ICHK-001)
  • If a checkbox includes the required attribute, JAWS will announce "invalid" when the checkbox is in an unchecked state, including in its default unchecked state (if not explicitly set to checked by the author) (Test ICHK-005)
  • While JAWS announces that the user should press the Spacebar to check / clear a checkbox, they can also press the Enter key to do this (all tests)
  • JAWS only announces "Space / Enter, checked" or "Space / Enter, unchecked" when checking / clearing the checkbox; the label for the checkbox is only announced when the checkbox initially receives focus (reading or keyboard) (all tests)
  • JAWS announces the checkbox's role as a "checkbox" but, when the checkbox is in a checked state, the instructions refer to clearing the "checkmark" (all tests)
input [color] input [color] test Colour picker control
input [color] test results
  • Test CI-001: unlabelled input type=color:
    • B / Shift + B key navigation:

      Colon zero percent, red zero percent, green zero percent, blue, button

    • Arrow key navigation:

      Colon zero percent, red zero percent, green zero percent, blue, button

    • Tab / Shift + Tab key navigation:

      Colon zero percent, red zero percent, green zero percent, blue, button, to activate press Enter

  • Test CI-002: input type=color with aria-label:
    • B / Shift + B key navigation:

      aria-label attribute contents, button

    • Arrow key navigation:

      aria-label attribute contents, button

    • Tab / Shift + Tab key navigation:

      aria-label attribute contents, button, to activate press Enter

  • Test CI-003: input type=color with aria-labelledby:
    • B / Shift + B key navigation:

      content referenced by the aria-labelledby attribute, button

    • Arrow key navigation:

      content referenced by the aria-labelledby attribute, button

    • Tab / Shift + Tab key navigation:

      content referenced by the aria-labelledby attribute, button, to activate press Enter

  • Test CI-004: input type=color with label:
    • B / Shift + B key navigation:

      label text, button

    • Arrow key navigation:

      label text, button

    • Tab / Shift + Tab key navigation:

      label text, button, to activate press Enter

  • Test CI-005: input type=color with title attribute:
    • B / Shift + B key navigation:

      title attribute contents, button

    • Arrow key navigation:

      title attribute contents, button

    • Tab / Shift + Tab key navigation:

      title attribute contents, button, to activate press Enter

  • Test CI-006: input type=color with aria-describedby:
    • B / Shift + B key navigation:

      Colon zero percent, red zero percent, green zero percent, blue, button, content referenced by the aria-describedby attribute

    • Arrow key navigation:

      Colon zero percent, red zero percent, green zero percent, blue, button, content referenced by the aria-describedby attribute

    • Tab / Shift + Tab key navigation:

      Colon zero percent, red zero percent, green zero percent, blue, button, content referenced by the aria-describedby attribute, to activate press Enter

  • Test CI-007: input type=color with label element & title attribute:
    • B / Shift + B key navigation:

      label text, title attribute contents, button, title attribute contents

    • Arrow key navigation:

      label text, title attribute contents, button, title attribute contents

    • Tab / Shift + Tab key navigation:

      label text, button, title attribute contents, to activate press Enter

Same commands as for button elements:
  • List Buttons Ctrl + Insert + B
  • Next Button B
  • Previous button B

Note: testing does not cover the actual colour selection widget, as different browsers use their own native widgets

  • The input type=color element is announced as a button, but not the specific type of button (a trigger for the browser's native colour selection widget)
  • The element is navigable using button navigation keys
  • If the input type=color is unlabelled / missing an accessible name, JAWS announces "Colon zero percent, red zero percent, gree zero percent, blue" (Test CI-001, Test CI-006)
  • Possible bug: if the title attribute is applied to the input type=color element and the element already has an accessible name provided by the label element, JAWS announces the contents of the title attribute twice when using the reading keys - once before announcing the button role, and a second time after announcing the role. Note that this behaviour does not occur when using the Tab / Shift + Tab keys to access the element. (Test CI-007)
input [date] input [date] test date (day/month year) picker control
input [date] test results
  • Test DI-001: unlabelled input type=date:
    • E / Shift + E key navigation:

      Date time edit, slash slash, show date picker

    • Arrow key navigation:

      Slash slash, date time edit, show date picker, date time edit

    • Tab / Shift + Tab key navigation:
      • Navigating into the field: Date time edit
      • When the "dd" day portion receives focus: Day edit spin box, zero, min 1 max 31, to set the value use the arrow keys
      • When the "mm" month portion receives focus: Month edit spin box, zero, min 1 max 12, to set the value use the arrow keys
      • When the "yyyy" year portion receives focus: Year edit spin box, zero, min 1 max 275760, to set the value use the arrow keys
      • When the trigger control for the date picker receives focus: Show date picker, button menu, press Space to activate the menu then navigate with arrow keys
  • Test DI-002: input type=date with aria-label:
    • E / Shift + E key navigation:

      aria-label attribute contents, date time edit, slash slash, show date picker

    • Arrow key navigation:

      aria-label attribute contents, slash slash, date time edit, show date picker, date time edit

    • Tab / Shift + Tab key navigation:
      • Navigating into the field: aria-label contents, date time edit
      • When the "dd" day portion receives focus: Day, aria-label contents, edit spin box, zero, min 1 max 31, to set the value use the arrow keys
      • When the "mm" month portion receives focus: Month, aria-label contents, edit spin box, zero, min 1 max 12, to set the value use the arrow keys
      • When the "yyyy" year portion receives focus: Year, aria-label contents, edit spin box, zero, min 1 max 275760, to set the value use the arrow keys
      • When the trigger control for the date picker receives focus: Show date picker, button menu, press Space to activate the menu then navigate with arrow keys
  • Test DI-003: input type=date with aria-labelledby:
    • E / Shift + E key navigation:

      Content referenced by the aria-labelledby attribute, date time edit, slash slash, show date picker

    • Arrow key navigation:

      Content referenced by the aria-labelledby attribute, slash slash, date time edit, show date picker, date time edit

    • Tab / Shift + Tab key navigation:
      • Navigating into the field: Content referenced by the aria-labelledby attribute, date time edit
      • When the "dd" day portion receives focus: Day, Content referenced by the aria-labelledby attribute, edit spin box, zero, min 1 max 31, to set the value use the arrow keys
      • When the "mm" month portion receives focus: Month, Content referenced by the aria-labelledby attribute, edit spin box, zero, min 1 max 12, to set the value use the arrow keys
      • When the "yyyy" year portion receives focus: Year, Content referenced by the aria-labelledby attribute, edit spin box, zero, min 1 max 275760, to set the value use the arrow keys
      • When the trigger control for the date picker receives focus: Show date picker, button menu, press Space to activate the menu then navigate with arrow keys
  • Test DI-004: input type=date with label:
    • E / Shift + E key navigation:

      label element contents, date time edit, slash slash, show date picker

    • Arrow key navigation:

      Slash slash, date time edit, show date picker, date time edit

    • Tab / Shift + Tab key navigation:
      • Navigating into the field: label element contents, date time edit
      • When the "dd" day portion receives focus: Day, label element contents, edit spin box, zero, min 1 max 31, to set the value use the arrow keys
      • When the "mm" month portion receives focus: Month, label element contents, edit spin box, zero, min 1 max 12, to set the value use the arrow keys
      • When the "yyyy" year portion receives focus: Year, label element contents, edit spin box, zero, min 1 max 275760, to set the value use the arrow keys
      • When the trigger control for the date picker receives focus: Show date picker, button menu, press Space to activate the menu then navigate with arrow keys
  • Test DI-005: input type=date with title attribute:
    • E / Shift + E key navigation:

      title attribute contents, date time edit, slash slash

    • Arrow key navigation:

      title attribute contents, slash slash, date time edit, title attribute contents, show date picker, date time edit

    • Tab / Shift + Tab key navigation:
      • Navigating into the field: title attribute contents, date time edit
      • When the "dd" day portion receives focus: Day, title attribute contents, edit spin box, zero, min 1 max 31, to set the value use the arrow keys
      • When the "mm" month portion receives focus: Month, title attribute contents, edit spin box, zero, min 1 max 12, to set the value use the arrow keys
      • When the "yyyy" year portion receives focus: Year, title attribute contents, edit spin box, zero, min 1 max 275760, to set the value use the arrow keys
      • When the trigger control for the date picker receives focus: Show date picker, button menu, press Space to activate the menu then navigate with arrow keys
  • Test DI-006: input type=date with aria-describedby:
    • E / Shift + E key navigation:

      Date time edit, slash slash, show date picker, content referenced by the aria-describedby attribute

    • Arrow key navigation:

      Slash slash, date time edit, show date picker, date time edit

    • Tab / Shift + Tab key navigation:
      • Navigating into the field: date time edit, content referenced by the aria-describedby attribute, content referenced by the aria-describedby attribute
      • When the "dd" day portion receives focus: Day, edit spin box, zero, content referenced by the aria-describedby attribute, min 1 max 31, to set the value use the arrow keys
      • When the "mm" month portion receives focus: Month, edit spin box, zero, content referenced by the aria-describedby attribute, min 1 max 12, to set the value use the arrow keys
      • When the "yyyy" year portion receives focus: Year, edit spin box, zero, content referenced by the aria-describedby attribute, min 1 max 275760, to set the value use the arrow keys
      • When the trigger control for the date picker receives focus: Show date picker, button menu, press Space to activate the menu then navigate with arrow keys
  • Test DI-007: input type=date with label element & title attribute:
    • E / Shift + E key navigation:

      label element contents, date time edit, title attribute contents slash title attribute contents slash title attribute contents, title attribute contents, min 1 max 31

    • Arrow key navigation:

      title attribute contents, date time edit, slash, date time edit, title attribute contents, date time edit, slash, date time edit, title attribute contents, date time edit, title attribute contents, show date picker, date time edit

    • Tab / Shift + Tab key navigation:
      • Navigating into the field: label element contents, date time edit, title attribute contents, title attribute contents
      • When the "dd" day portion receives focus: Day, label element contents, edit spin box, zero, title attribute contents, min 1, max 31, to set the value use the arrow keys
      • When the "mm" month portion receives focus: Month, label element contents, edit spin box, zero, title attribute contents, min 1, max 12, to set the value use the arrow keys
      • When the "yyyy" year portion receives focus:
      • When the "mm" month portion receives focus: Month, label element contents, edit spin box, zero, title attribute contents, min 1, max 275760, to set the value use the arrow keys
      • When the trigger control for the date picker receives focus: Show date picker, button menu, press Space to activate the menu then navigate with arrow keys
  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E

Note: testing does not cover the actual date picker widget, as different browsers use their own native widgets

  • Possible bug: if the title attribute alone is used to provide an accessible name for the input type=date element, JAWS does not announce the "show date picker" instruction (Test DI-005)
  • Possible bug: when navigating directly to an input type=date using the E / Shift + E reading keys, JAWS announces the full accessible name and role for the element. However, when navigating into an input type=date element using the Arrow keys, JAWS only announces the accessible name when it is provided through the application of the aria-label attribute or title attribute on the input. If another method is used to label the input, such as wrapping the input inside a label or the use of the aria-labelledby attribute to label the input with referenced content, a JAWS user must explicitly navigate to the related content using the Arrow key to listen to the accessible name for the field (assuming they do not switch to using the E / Shift + E reading keys instead) (Test DI-003, Test DI-004, Test DI-007)
  • Possible bug: when navigating directly to an input type=date using the E / Shift + E reading keys, JAWS announces any content referenced via the aria-describedby attribute when the field receives focus as expected. However, when navigating into an input type=date element using the Arrow keys, JAWS does not announce this content as the field's accessible description; a user must explicitly and separately navigate to the referenced text. (Test DI-006)
  • Possible bug: when the aria-describedby attribute is applied to an unlabelled input type=date element, JAWS announces the contents referenced from this attribute twice when initially navigating into the field using the Tab / Shift + Tab keys (Test DI-006)
  • Possible bug: even when marked up correctly, JAWS announces the contents of the title attribute multiple times when using reading keys or the Tab / Shift + Tab keys to navigate to an input type=date with a label element and a title attribute (Test DI-007)
  • The accessible name for the field is never announced when the trigger control for the date picker receives focus using the Tab / Shift + Tab keys. JAWS only announces the role and name for the specific button (determined by the user agent), and instructions for operating the date picker. Note that JAWS does announce an accessible name the trigger control receives focus using the Shift + Tab keys, but this accessible name relates to the field as a whole, and not specifically the trigger control. (All tests)
input [email] input [email] test text control for inputting email address
input [email] test results
  • Test EI-001: unlabelled input type=email:
    • E / Shift + E key navigation:

      Edit, blank

    • Arrow key navigation:

      Edit

    • Tab / Shift + Tab key navigation:

      Edit, blank, type in text

  • Test EI-002: input type=email with aria-label:
    • E / Shift + E key navigation:

      aria-label text, edit, blank

    • Arrow key navigation:

      aria-label text, edit

    • Tab / Shift + Tab key navigation:

      em>aria-label text, edit, blank, type in text

  • Test EI-003: input type=email with aria-labelledby:
    • E / Shift + E key navigation:

      Contents referenced from the aria-labelledby attribute, edit, blank

    • Arrow key navigation:

      Contents referenced from the aria-labelledby attribute, edit

    • Tab / Shift + Tab key navigation:

      Contents referenced from the aria-labelledby attribute, edit, blank, type in text

  • Test EI-004: input type=email with label:
    • E / Shift + E key navigation:

      label text, edit, blank

    • Arrow key navigation:

      label text, edit

    • Tab / Shift + Tab key navigation:

      label text, edit, blank, type in text

  • Test EI-005: input type=email with title attribute:
    • E / Shift + E key navigation:

      title attribute contents, edit, blank

    • Arrow key navigation:

      title attribute contents, edit, title attribute contents

    • Tab / Shift + Tab key navigation:

      title attribute contents, edit, blank, type in text

  • Test EI-006: input type=email with aria-describedby:
    • E / Shift + E key navigation:

      Edit, blank, contents referenced by the aria-describedby attribute

    • Arrow key navigation:

      Edit

    • Tab / Shift + Tab key navigation:

      Edit, blank, contents referenced by the aria-describedby attribute, type in text

  • Test EI-007: input type=email with label element & title attribute:
    • E / Shift + E key navigation:

      label text, edit, blank, title attribute contents

    • Arrow key navigation:

      label text, edit, title attribute contents

    • Tab / Shift + Tab key navigation:

      label text, edit, blank, title attribute contents, type in text

  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E

  • JAWS announces the field as an edit field, but does not announce the type of edit field (a field that requires an email address as an input) (All tests)
  • Possible bug: JAWS does not announce the text referenced via the aria-describedby attribute when navigating into an input type=email using the arrow keys; it only announces the term "edit" (assuming that the field is also missing an accessible name) (Test EI-006)

input [file] input [file] test File chooser control
input [file] test results
  • List Buttons Ctrl + Insert + B
  • Next Button B
  • Previous button B

  • If the input type=file element is missing an explicit name, JAWS will announce the visible text for the button ("Choose File"); if an accessible name is provided, JAWS will announce the accessible name but will not announce the visible text for the button (All tests)
  • Although JAWS announces the input type=file element as a button, it will also announce either "No file chosen" or the filename of the uploaded file once a file has been uploaded, thus providing some distinction from other types of button elements (All tests)
  • If the required attribute is applied to an input type=file element, JAWS announces both the terms "required" and "invalid entry", regardless of the navigation method the user uses to access the element (Test IFILE-003)
  • The application of the readonly or multiple attributes on an input type=file element has no effect on how the element is conveyed by JAWS; the state of these attributes is not announced, regardless of the navigation method the user users to access the element (Test IFILE-004, Test IFILE-006)
input [hidden] No test hidden form control None expected No special commands No UI
input [image] input [image] test Button control
input [image] test results
  • List Buttons Ctrl + Insert + B
  • Next Button B
  • Previous button B

  • JAWS announces input type=image element as a button, and the element supports general button navigation (all tests)
  • If the input type=image element is missing an accessible name, JAWS automatically announces "submit" as the accessible name for the button (Test IIMG-001)
  • If the alt attribute on the input type=image element includes only whitespace, and no other acceptable technique has been used to provide an accessible name for the element, JAWS will only announce the role of the element when it receives focus (Test IIMG-006)
input [number] input [number] test Spin box control
input [number] test results
  • Test NI-001: unlabelled input type="number":
    • E / Shift + E key navigation:

      Edit, spin box

    • Arrow key navigation:

      Edit, spin box

    • Tab / Shift + Tab key navigation:

      Edit, spin box, to set the value use the arrow keys or type the value

  • Test NI-002: input type="number" with aria-label:
    • E / Shift + E key navigation:

      aria-label contents, edit, spin box

    • Arrow key navigation:

      aria-label contents, edit, spin box

    • Tab / Shift + Tab key navigation:

      aria-label contents, edit, spin box, to set the value use the arrow keys or type the value

  • Test NI-003: input type="number" with aria-labelledby:
    • E / Shift + E key navigation:

      Contents referenced by the aria-labelledby attribute, edit, spin box

    • Arrow key navigation:

      Contents referenced by the aria-labelledby attribute, edit, spin box

    • Tab / Shift + Tab key navigation:

      Contents referenced by the aria-labelledby attribute, edit, spin box, to set the value use the arrow keys or type the value

  • Test NI-004: input type="number" with label:
    • E / Shift + E key navigation:

      label contents, edit, spin box

    • Arrow key navigation:

      label contents, edit, spin box

    • Tab / Shift + Tab key navigation:

      label contents, edit, spin box, to set the value use the arrow keys or type the value

  • Test NI-005: input type="number" with title attribute:
    • E / Shift + E key navigation:

      Contents of the title attribute, edit, spin box, Contents of the title attribute

    • Arrow key navigation:

      Contents of the title attribute, edit, spin box

    • Tab / Shift + Tab key navigation:

      Contents of the title attribute, edit, spin box, to set the value use the arrow keys or type the value

  • Test NI-006: input type="number" with aria-describedby:
    • E / Shift + E key navigation:

      Edit, spin box, contents referenced by the aria-describedby attribute

    • Arrow key navigation:

      Edit, spin box

    • Tab / Shift + Tab key navigation:

      Edit, spin box, contents referenced by the aria-describedby attribute, to set the value use the arrow keys or type the value

  • Test NI-007: input type="number" with label element & title attribute:
    • E / Shift + E key navigation:

      label element contents, edit, spin box, Contents of the title attribute, Contents of the title attribute

    • Arrow key navigation:

      Contents of the title attribute, edit, spin box

    • Tab / Shift + Tab key navigation:

      label contents, edit, spin box, Contents of the title attribute, to set the value use the arrow keys or type the value

  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E
  • Increase value ↑
  • Decrease value ↓

  • JAWS announces the updated value when using the ↑ and ↓ arrow keys to adjust the value in an input type=number element (all tests)
  • The button controls inside the input type=number element cannot be reached with JAWS, either when using the Tab / Shift + Tab keys or button shortcuts (such as B / Shift + B keys); however, a user can instead use the arrow keys as described above to change the value instead (all tests)
  • Possible bug: if the input type=number element is labelled using the label element and includes a title attribute, JAWS announces the contents of the title attribute twice (Test NI-007)
input [password] input [password] test Text control for inputting a password
input [password] test results
  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E

  • JAWS announces "star" when inputting characters into input type=password fields (all tests)
  • Possible bug: JAWS only announces the placeholder attribute's contents on an input type=password field when the field includes the readonly attribute; in all other tests, JAWS failed to announce the placeholder attribute's contents (Test IPWD-006)
input [range] input [range] test slider control
input [range] test results
  • Test RI-001: unlabelled input type="range":
    • F / Shift + F key navigation:

      Left, right, slider, current value, min minimum value, max maximum value

    • Arrow key navigation:

      Left, right, slider, current value, min minimum value, max maximum value

    • Tab / Shift + Tab key navigation:

      Left, right, slider, current value, min minimum value, max maximum value, to increase or decrease use the arrow keys

  • Test RI-002: input type="range" with aria-label:
    • F / Shift + F key navigation:

      aria-label contents, left, right, slider, current value, min minimum value, max maximum value

    • Arrow key navigation:

      aria-label contents, left, right, slider, current value, min minimum value, max maximum value

    • Tab / Shift + Tab key navigation:

      aria-label contents, left, right, slider, current value, min minimum value, max maximum value, to increase or decrease use the arrow keys

  • Test RI-003: input type="range" with aria-labelledby:
    • F / Shift + F key navigation:

      Contents referenced by the aria-labelledby attribute, left, right, slider, current value, min minimum value, max maximum value

    • Arrow key navigation:

      Contents referenced by the aria-labelledby attribute, left, right, slider, current value, min minimum value, max maximum value

    • Tab / Shift + Tab key navigation:

      Contents referenced by the aria-labelledby attribute, left, right, slider, current value, min minimum value, max maximum value, to increase or decrease use the arrow keys

  • Test RI-004: input type="range" with label:
    • F / Shift + F key navigation:

      label element contents, left, right, slider, current value, min minimum value, max maximum value

    • Arrow key navigation:

      label element contents, left, right, slider, current value, min minimum value, max maximum value

    • Tab / Shift + Tab key navigation:

      label element contents, left, right, slider, current value, min minimum value, max maximum value, to increase or decrease use the arrow keys

  • Test RI-005: input type="range" with title attribute:
    • F / Shift + F key navigation:

      title attribute contents, left, right, slider, current value, title attribute contents, title attribute contents, min minimum value, max maximum value

    • Arrow key navigation:

      title attribute contents, left, right, slider, current value, title attribute contents, title attribute contents, min minimum value, max maximum value

    • Tab / Shift + Tab key navigation:

      title attribute contents, left, right, slider, current value, min minimum value, max maximum value, to increase or decrease use the arrow keys

  • Test RI-006: input type="range" with aria-describedby:
    • F / Shift + F key navigation:

      Left, right, slider, current value, contents referenced by the aria-describedby attribute, min minimum value, max maximum value

    • Arrow key navigation:

      Left, right, slider, current value, contents referenced by the aria-describedby attribute, min minimum value, max maximum value

    • Tab / Shift + Tab key navigation:

      Left, right, slider, current value, contents referenced by the aria-describedby attribute, min minimum value, max maximum value, to increase or decrease use the arrow keys

  • Test RI-007: input type="range" with label element & title attribute:
    • F / Shift + F key navigation:

      label element contents, left, right, slider, current value, title attribute contents, title attribute contents, min minimum value, max maximum value

    • Arrow key navigation:

      label element contents, left, right, slider, current value, title attribute contents, title attribute contents, min minimum value, max maximum value

    • Tab / Shift + Tab key navigation:

      label element contents, left, right, slider, current value, title attribute contents, min minimum value, max maximum value, to increase or decrease use the arrow keys

  • List Form Fields Insert + F5
  • Move To Next Form Field F
  • Move to Prior Form Field Shift + F
  • → and ↑ increase the value of the slider.
  • ← and ↓ decrease the value of the slider.
  • Home and End move to the minimum and maximum values of the slider.
  • PAGE UP and PAGE DOWN increment or decrement the slider by a given amount.

  • JAWS does not include a specific keystroke for navigating directly to and between input type=range elements; however, it is treated as a form field, so users can use the F / Shift + F keys to perform the same action (all tests)
  • JAWS must be in forms mode to allow the user to operate input type=range elements; when using reading keys, a user should press the Enter key when the element has reading focus to switch into this mode (all tests)
  • Once in forms mode, a user can use the Arrow keys to increase / decrease the slider value; the slider value is announced by JAWS as it changes (all tests)
  • Possible bug: when using reading keys to navigate to an input type=range element, JAWS announce the contents of the title attribute applied to this element multiple times (Test RI-005, Test RI-007)
input [radio] input [radio], test single choice from a set of options
input [radio] test results
  • List Radio Buttons  Ctrl + Insert + A
  • Move To Next Radio Button  A
  • Move to Prior Radio Button  Shift + A

  • JAWS announces "x of y" for each radio button where x is the position of the radio button in the group, and y is the total number of radio buttons in the group (all tests)
  • When navigating into a group of radio buttons marked up using the fieldset and legend elements, JAWS announces the following before announcing the properties of the first radio button in the group to receive focus (Test IRDO-004):
    • The accessible name for the group, provided using the legend element
    • The word "group" to indicate the user has entered a group (via the fieldset element)
  • JAWS only announces the above when initially navigating into the group from any direction; once inside the group, JAWS only announces the properties of each radio button (Test IRDO-004)
input [reset] input [reset] test Button control for resetting a form
input [reset] test results
  • List Buttons Ctrl + Insert + B
  • Next Button B
  • Previous button B

  • JAWS announces the input type=reset element as a button, but does not indicate the specific type of button (a button for resetting a form) (all tests)
  • The element is navigable using button navigation keys (all tests)
input [search] input [search] test Text control for inputting search terms
input [search] test results
  • Test SI-001: unlabelled input type=search:
    • E / Shift + E key navigation:

      Closest visible label, edit, blank

    • Arrow key navigation:

      Closest visible label, edit

    • Tab / Shift + Tab key navigation:

      Closest visible label, edit, blank, type in text

  • Test SI-002: input type=search with aria-label:
    • E / Shift + E key navigation:

      aria-label attribute contents, edit, blank

    • Arrow key navigation:

      aria-label attribute contents, edit

    • Tab / Shift + Tab key navigation:

      aria-label attribute contents, edit, blank, type in text

  • Test SI-003: input type=search with aria-labelledby:
    • E / Shift + E key navigation:

      contents referenced via the aria-labelledby attribute, edit, blank

    • Arrow key navigation:

      contents referenced via the aria-labelledby attribute, edit

    • Tab / Shift + Tab key navigation:

      contents referenced via the aria-labelledby attribute, edit, blank, type in text

  • Test SI-004: input type=search with label:
    • E / Shift + E key navigation:

      label element contents, edit, blank

    • Arrow key navigation:

      label element contents, edit

    • Tab / Shift + Tab key navigation:

      label element contents, edit, blank, type in text

  • Test SI-005: input type=search with title attribute:
    • E / Shift + E key navigation:

      title attribute contents, edit, blank

    • Arrow key navigation:

      title attribute contents, edit, title attribute contents

    • Tab / Shift + Tab key navigation:

      title attribute contents, edit, blank, type in text

  • Test SI-006: input type=search with aria-describedby:
    • E / Shift + E key navigation:

      Closest visible label, edit, blank, contents referenced via the aria-describedby attribute

    • Arrow key navigation:

      Closest visible label, edit

    • Tab / Shift + Tab key navigation:

      Closest visible label, edit, blank, contents referenced via the aria-describedby attribute, type in text

  • Test SI-007: input type=search with label element & title attribute:
    • E / Shift + E key navigation:

      label element contents, edit, blank, title attribute contents

    • Arrow key navigation:

      label element contents, edit, title attribute contents

    • Tab / Shift + Tab key navigation:

      label element contents, edit, blank, title attribute contents, type in text

  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E

  • JAWS announces input type=search elements as edit fields, but does not announce the type of edit field (a field intended for entering a search term) (all tests)
  • When navigating to an empty input type=search element using the E / Shift + E keys or the Tab / Shift + Tab keys, JAWS will announce that the field is empty ("blank"); however, JAWS will not announce this term when navigating to the element when using the Arrow keys (all tests)
  • If the input type=search element is missing an explicit accessible name, JAWS "guesses" the label based on nearby content (Test SI-001, Test SI-006)
  • Possible bug: when navigating to an unlabelled input type=search element that includes an aria-describedby attribute, JAWS announces the contents referenced by this attribute when the element is reached using the E / Shift + E keys or the Tab / Shift + Tab keys; however, it does not announce the referenced text when navigating to the element using the Arrow keys (Test SI-006)
input [submit] input [submit] test Button control for submitting a form
input [submit] test results
  • List Buttons Ctrl + Insert + B
  • Next Button B
  • Previous button B

The input type=submit element is announced as a submit button by default when the element does not include the value attribute (Test ISUBMIT-001). However, if the value attribute is applied to the element, JAWS conveys the contents of this attribute in place of the word "submit", and does not otherwise announce that the element represents a submit button. (Test ISUBMIT-002, Test ISUBMIT-003)
input [tel] input [tel] test text box control for inputting a phone number
input [tel] test results
  • Test TL-001: unlabelled input type=tel:
    • E / Shift + E key navigation:

      Closest visible label, edit, blank

    • Arrow key navigation:

      Closest visible label, edit

    • Tab / Shift + Tab key navigation:

      Closest visible label, edit, blank, type in text

  • Test TL-002: input type=tel with aria-label:
    • E / Shift + E key navigation:

      aria-label attribute contents, edit, blank

    • Arrow key navigation:

      aria-label attribute contents, edit

    • Tab / Shift + Tab key navigation:

      aria-label attribute contents, edit, blank, type in text

  • Test TL-003: input type=tel with aria-labelledby:
    • E / Shift + E key navigation:

      Contents referenced via the aria-labelledby attribute, edit, blank

    • Arrow key navigation:

      Contents referenced via the aria-labelledby attribute, edit

    • Tab / Shift + Tab key navigation:

      Contents referenced via the aria-labelledby attribute, edit, blank, type in text

  • Test TL-004: input type=tel with label:
    • E / Shift + E key navigation:

      label element contents, edit, blank

    • Arrow key navigation:

      label element contents, edit

    • Tab / Shift + Tab key navigation:

      label element contents, edit, blank, type in text

  • Test TL-005: input type=tel with title attribute:
    • E / Shift + E key navigation:

      title attribute contents, edit, blank

    • Arrow key navigation:

      title attribute contents, edit, title attribute contents

    • Tab / Shift + Tab key navigation:

      title attribute contents, edit, blank, type in text

  • Test TL-006: input type=tel with aria-describedby:
    • E / Shift + E key navigation:

      Closest visible label, edit, blank, contents referenced via the aria-describedby attribute

    • Arrow key navigation:

      Closest visible label, edit

    • Tab / Shift + Tab key navigation:

      Closest visible label, edit, blank, contents referenced via the aria-describedby attribute, type in text

  • Test TL-007: input type=tel with label & title attribute:
    • E / Shift + E key navigation:

      label element contents, edit, blank, title attribute contents

    • Arrow key navigation:

      label element contents, edit, title attribute contents

    • Tab / Shift + Tab key navigation:

      label element contents, edit, blank, title attribute contents, type in text

  • Test TL-008: input type=tel with explicit label & required attribute:
    • E / Shift + E key navigation:

      label element contents, edit, required, blank

    • Arrow key navigation:

      label element contents, edit, required

    • Tab / Shift + Tab key navigation:

      label element contents, edit, required, blank, type in text

  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E

  • JAWS announces input type=tel elements as edit fields, but does not announce the type of edit field (a field intended for entering a phone number) (all tests)
  • When navigating to an empty input type=tel element using the E / Shift + E keys or the Tab / Shift + Tab keys, JAWS will announce that the field is empty ("blank"); however, JAWS will not announce this term when navigating to the element when using the Arrow keys (all tests)
  • If the input type=tel element is missing an explicit accessible name, JAWS "guesses" the label based on nearby content (Test TL-001, Test TL-006)
  • Possible bug: when navigating to an unlabelled input type=tel element that includes an aria-describedby attribute, JAWS announces the contents referenced by this attribute when the element is reached using the E / Shift + E keys or the Tab / Shift + Tab keys; however, it does not announce the referenced text when navigating to the element using the Arrow keys (TL-006)
input [text] input [text] test text box control
input [text] test results
  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E

  • When navigating to an empty input type=text element using the E / Shift + E keys or the Tab / Shift + Tab keys, JAWS will announce that the field is empty ("blank"); however, JAWS will not announce this term when navigating to the element when using the Arrow keys (all tests)
  • If an input type=text element is missing an explicit accessible name, JAWS "guesses" the label based on nearby content (Test ITEXT-001, Test ITEXT-002)
  • Possible bug: if an input type=text element includes both the readonly attribute and the placeholder attribute, JAWS announces the presence and contents of the placeholder attribute when navigating to the field using the E / Shift + E keys or the Tab / Shift + Tab keys, but will not announce the presence or contents of the placeholder attribute when navigating to the field using the Arrow keys (Test ITEXT-007)
  • JAWS does not explicitly announce information associated with the size, aria-autocomplete=list, aria-autocomplete=inline, aria-autocomplete=both, aria-autocomplete=none, or aria-autocomplete=off attributes when these attributes are applied to the input type=text element and when the element receives focus (Test ITEXT-013, Test ITEXT-014, Test ITEXT-015, Test ITEXT-016, Test ITEXT-017, Test ITEXT-018)
input [time] input [time] test Control for setting a specific time.
input [time] test results
  • Test TI-001: Unlabelled input type=time:
    • E / Shift + E key navigation:
      • Hours field: Hours, edit, spinbox, hours, colon, current value, min zero, max 23
      • Minutes field: Minutes, edit, spinbox, minutes, colon, current value, min zero, max 59
      • Show time picker button: N/A - not reachable using these keystrokes
    • Arrow key navigation (in reading mode, not editing mode):
      • Hours field: Hours, [user presses the Down arrow key], hours, colon, current value, edit, spinbox, button
      • Minutes field: Minutes, [user presses the Down arrow key], minutes, colon, current value, edit, spinbox
      • Show time picker button: Show time picker, button, menu
    • Tab / Shift + Tab key navigation:
      • Hours field:: Hours, edit, spinbox, current value, min zero, max 23, to set the value use the arrow keys
      • Minutes field:: Minutes, edit, spinbox, current value, min zero, max 59, to set the value use the arrow keys
      • Show time picker button:: Show time picker, button, menu, press space to activate the menu then navigate with arrow keys
  • Test TI-002: input type=time with aria-label:
    • E / Shift + E key navigation:
      • Hours field: Hours, edit, spinbox, hours, colon, current value, min zero, max 23
      • Minutes field: Minutes, edit, spinbox, minutes, colon, current value, min zero, max 59
      • Show time picker button: N/A - not reachable using these keystrokes
    • Arrow key navigation (in reading mode, not editing mode):
      • Hours field: Hours, [user presses the Down arrow key], hours, colon, current value, edit, spinbox, button
      • Minutes field: Minutes, [user presses the Down arrow key], minutes, colon, current value, edit, spinbox
      • Show time picker button: Show time picker, value of the aria-label attribute, show time picker, button, menu
    • Tab / Shift + Tab key navigation:
      • Hours field:: Hours, value of the aria-label attribute, edit, spinbox, current value, min zero, max 23, to set the value use the arrow keys
      • Minutes field:: Minutes, value of the aria-label attribute, edit, spinbox, current value, min zero, max 59, to set the value use the arrow keys
      • Show time picker button:: Show time picker, value of the aria-label attribute, button, menu, press space to activate the menu then navigate with arrow keys
  • Test TI-003: input type=time with aria-labelledby:
    • E / Shift + E key navigation:
      • Hours field: Hours, edit, spinbox, hours, colon, current value, min zero, max 23
      • Minutes field: Minutes, edit, spinbox, minutes, colon, current value, min zero, max 59
      • Show time picker button: N/A - not reachable using these keystrokes
    • Arrow key navigation (in reading mode, not editing mode):
      • Hours field: Hours, colon, current value, edit, spinbox, button
      • Minutes field: Minutes, colon, current value, edit, spinbox
      • Show time picker button: Show time picker, contents referenced by the aria-labelledby attribute, show time picker, button, menu
    • Tab / Shift + Tab key navigation:
      • Hours field:: Hours, contents referenced by the aria-labelledby attribute, edit, spinbox, current value, min zero, max 23, to set the value use the arrow keys
      • Minutes field:: Minutes, contents referenced by the aria-labelledby attribute, edit, spinbox, current value, min zero, max 59, to set the value use the arrow keys
      • Show time picker button:: Show time picker, contents referenced by the aria-labelledby attribute, button, menu, press space to activate the menu then navigate with arrow keys
  • Test TI-004: input type=time with label:
    • E / Shift + E key navigation:
      • Hours field: Hours, edit, spinbox, hours, colon, current value, min zero, max 23
      • Minutes field: Minutes, edit, spinbox, minutes, colon, current value, min zero, max 59
      • Show time picker button: N/A - not reachable using these keystrokes
    • Arrow key navigation (in reading mode, not editing mode):
      • Hours field: Hours, colon, current value, edit, spinbox, [user presses the Down arrow key], colon
      • Minutes field: Minutes, colon, current value, edit, spinbox
      • Show time picker button: Show time picker, label content that wraps the element, show time picker, button, menu
    • Tab / Shift + Tab key navigation:
      • Hours field:: Hours, label content that wraps the element, edit, spinbox, current value, min zero, max 23, to set the value use the arrow keys
      • Minutes field:: Minutes, label content that wraps the element, edit, spinbox, current value, min zero, max 59, to set the value use the arrow keys
      • Show time picker button:: Show time picker, label content that wraps the element, button, menu, press space to activate the menu then navigate with arrow keys
  • Test TI-005: input type=time with title attribute:
    • E / Shift + E key navigation:
      • Hours field: Hours, edit, spinbox, hours, colon, current value, min zero, max 23
      • Minutes field: Minutes, edit, spinbox, minutes, colon, current value, min zero, max 59
      • Show time picker button: N/A - not reachable using these keystrokes
    • Arrow key navigation (in reading mode, not editing mode):
      • Hours field: Hours, [user presses the Down arrow], hours, colon, current value, edit, spinbox, colon
      • Minutes field: Minutes, [user presses the Down arrow], minutes, colon, current value, edit, spinbox, value of the title attribute
      • Show time picker button: Show time picker, value of the title attribute, show time picker, button, menu
    • Tab / Shift + Tab key navigation:
      • Hours field:: Hours, value of the title attribute, edit, spinbox, current value, min zero, max 23, to set the value use the arrow keys
      • Minutes field:: Minutes, value of the title attribute, edit, spinbox, current value, min zero, max 59, to set the value use the arrow keys
      • Show time picker button:: Show time picker, value of the title attribute, button, menu, press space to activate the menu then navigate with arrow keys
  • Test TI-006: input type=time with aria-describedby:
    • E / Shift + E key navigation:
      • Hours field: Hours, edit, spinbox, hours, colon, current value, content referenced by the aria-describedby attribute, min zero, max 23
      • Minutes field: Minutes, edit, spinbox, minutes, colon, current value, content referenced by the aria-describedby attribute, min zero, max 59
      • Show time picker button: N/A - not reachable using these keystrokes
    • Arrow key navigation (in reading mode, not editing mode):
      • Hours field: Hours, [user presses the Down arrow], hours, colon, current value, edit, spinbox, colon
      • Minutes field: Minutes, [user presses the Down arrow], minutes, colon, current value, edit, spinbox
      • Show time picker button: Show time picker, button, menu
    • Tab / Shift + Tab key navigation:
      • Hours field:: Hours, edit, spinbox, current value, content referenced by the aria-describedby attribute, min zero, max 23, to set the value use the arrow keys
      • Minutes field:: Minutes, edit, spinbox, current value, content referenced by the aria-describedby attribute, min zero, max 59, to set the value use the arrow keys
      • Show time picker button:: Show time picker, button, menu, content referenced by the aria-describedby attribute, press space to activate the menu then navigate with arrow keys
  • Test TI-007: input type=time with label element & title attribute:
    • E / Shift + E key navigation:
      • Hours field: Hours, edit, spinbox, hours, colon, current value, title attribute content, title attribute content, min zero, max 23
      • Minutes field: Minutes, edit, spinbox, minutes, colon, current value, title attribute content, title attribute content, min zero, max 59
      • Show time picker button: N/A - not reachable using these keystrokes
    • Arrow key navigation (in reading mode, not editing mode):
      • Hours field: Hours, colon, current value, value of the title attribute, edit, spinbox, colon
      • Minutes field: Minutes, colon, current value, value of the title attribute, edit, spinbox, value of the title attribute
      • Show time picker button: Show time picker, label contents, value of the title attribute, button, menu
    • Tab / Shift + Tab key navigation:
      • Hours field:: Hours, label contents, edit, spinbox, current value, value of the title attribute, min zero, max 23, to set the value use the arrow keys
      • Minutes field:: Minutes, label contents, edit, spinbox, current value, value of the title attribute, min zero, max 59, to set the value use the arrow keys
      • Show time picker button:: Show time picker, label contents, button, menu, value of the title attribute, press space to activate the menu then navigate with arrow keys
  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E

General:

  • The component generated by Chrome when it encounters an input type=time element is made up of separate hours and minutes fields, followed by a menu button labelled show time picker
  • Expanding the show time picker menu button generates two parallel comboboxes, the first of which relates to hours and the second of which relates to minutes; a user can navigate between these comboboxes using the Left and Right arrow keys

 

Notable JAWS behaviour:

  • When navigating to and between fields within the time component generated by Chrome using the E / Shift + E keys, JAWS will announce each field the same way, without reference to primary or secondary labels attached to the input, except when:
    • The aria-describedby attribute is applied to the input type="time" element (Test TI-006) or
    • The title attribute is applied to the input type="time" element (Test TI-007)
  • When navigating to and between fields within the time component generated by Chrome using the Arrow keys, and when in reading mode rather than edit mode, JAWS' announcements for each element of the component differ depending on how the overall input type=time element is labelled; specifically:
    • If the input type=time element is missing any form of labelling, JAWS will only announce the current value of each hours and minutes field, and the role of each element (spinbox for the hours and minutes fields, menu button for the show time picker button) (Test TI-001)
    • If the aria-label attribute is applied to the input type=time element, JAWS will only announce the value of this attribute when the Show Time Picker button receives Arrow key focus, and the term "show time picker" will be announced twice (once before the value of the aria-label attribute is announced, and again after the value of the aria-label attribute is announced) (Test TI-002)
    • If the aria-labelledby attribute is applied to the input type=time element, JAWS will only announce the content referenced by this attribute when the Show Time Picker button receives Arrow key focus, and the term "show time picker" will be announced twice (once before the referenced content is announced, and again after the referenced content is announced) (Test TI-003)
    • If the input type=time element is wrapped inside a label element, JAWS will only announce the label contents when the Show Time Picker button receives Arrow key focus, and the term "show time picker" will be announced twice (once before the label contents are announced, and again after the label contents are announced) (Test TI-004)
    • If the title attribute is applied to the input type=time element, JAWS will announce the contents of this attribute when the Minutes field receives Arrow key focus, and will also announce the contents of this attribute when the "Show Time Picker" button receives Arrow key focus; in terms of the latter, JAWS will announce the term "show time picker" both before and after the value of the title attribute is announced (Test TI-005)
    • JAWS does not announce the content referenced by the aria-describedby attribute at any point when navigating through the fields or buttons that Chrome generates based on the input type=time element using the Arrow keys (Test TI-006)
    • If the title attribute is applied to the input type=time element, and the element is labelled using the label element using a for and id relationship:
      • JAWS will announce the value of the title attribute when each of the hours and minutes fields, and the Show Time Picker button receive focus using the Arrow keys
      • JAWS will only announce the value of the label element when the Show Time Picker button receives Arrow key focus
      (Test TI-007)
  • When navigating to and between fields within the time component generated by Chrome using the Tab / Shift + Tab keys:
    • JAWS will announce the element as a group when initially navigating into the element using the above keys unless the element is missing an accessible name or is missing an accessible description
input [url] input [url] test Text control for inputting a URL
input [url] test results
  • Test UI-001: unlabelled input type="url":
    • E / Shift + E key navigation:

      Closest visible label, edit, blank

    • Arrow key navigation:

      Closest visible label, edit

    • Tab / Shift + Tab key navigation:

      Closest visible label, edit, blank, type in text

  • Test UI-002: input type="url" with aria-label:
    • E / Shift + E key navigation:

      aria-label attribute contents, edit, blank

    • Arrow key navigation:

      aria-label attribute contents, edit

    • Tab / Shift + Tab key navigation:

      aria-label attribute contents, edit, blank, type in text

  • Test UI-003: input type="url" with aria-labelledby:
    • E / Shift + E key navigation:

      Content referenced by the aria-labelledby attribute, edit, blank

    • Arrow key navigation:

      Content referenced by the aria-labelledby attribute, edit

    • Tab / Shift + Tab key navigation:

      Content referenced by the aria-labelledby attribute, edit, blank, type in text

  • Test UI-004: input type="url" with label:
    • E / Shift + E key navigation:

      label element contents, edit, blank

    • Arrow key navigation:

      label element contents, edit

    • Tab / Shift + Tab key navigation:

      label element contents, edit, blank, type in text

  • Test UI-005: input type="url" with title attribute:
    • E / Shift + E key navigation:

      title attribute contents, edit, blank

    • Arrow key navigation:

      title attribute contents, edit, title attribute contents

    • Tab / Shift + Tab key navigation:

      title attribute contents, edit, blank, type in text

  • Test UI-006: input type="url" with aria-describedby:
    • E / Shift + E key navigation:

      Edit, blank, contents referenced by the aria-describedby attribute

    • Arrow key navigation:

      Edit

    • Tab / Shift + Tab key navigation:

      Edit, blank, contents referenced by the aria-describedby attribute, type in text

  • Test UI-007: input type="url" with label element & title attribute:
    • E / Shift + E key navigation:

      label element contents, edit, blank, title attribute contents

    • Arrow key navigation:

      label element contents, edit, title attribute contents

    • Tab / Shift + Tab key navigation:

      label element contents, edit, blank, title attribute contents, type in text

  • Test UI-008: input type="url" with explicit label element & required attribute:
    • E / Shift + E key navigation:

      label element contents, edit, required, blank

    • Arrow key navigation:

      label element contents, edit, required

    • Tab / Shift + Tab key navigation:

      label element contents, edit, required, blank, type in text

  • Test UI-009: input type="url" with explicit label & readonly attribute:
    • E / Shift + E key navigation:

      label element contents, readonly, edit, blank

    • Arrow key navigation:

      Readonly, edit

    • Tab / Shift + Tab key navigation:

      label element contents, readonly, edit, blank, use your reading keys to read the text

  • Test UI-010: input type="url" with explicit label & disabled attribute:
    • E / Shift + E key navigation:

      Not announced, skipped entirely

    • Arrow key navigation:

      Edit, unavailable

    • Tab / Shift + Tab key navigation:

      Not announced, skipped entirely

  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E
  • JAWS announces an input type=url field as an edit field, but does not announce the type of edit field (a field that requires a URL as an input) (all tests)
  • If an input type=url field is missing any form of labelling, JAWS "guesses" the label based on nearby content (Test UI-001)
  • When navigating to an empty input type=url element using the E / Shift + E keys or the Tab / Shift + Tab keys, JAWS will announce that the field is empty ("blank"); however, JAWS will not announce this term when navigating to the element using the Arrow keys (all tests)
  • Possible bug: when an input type=url element is labelled using only the title attribute, JAWS announces the contents of this attribute twice when navigating into the field using the Arrow keys (Test UI-005)
  • Possible bug: when navigating to an unlabelled input type=url element that includes an aria-describedby attribute, JAWS announces the contents referenced by this attribute when the element is reached using the E / Shift + E keys or the Tab / Shift + Tab keys; however, it does not announce the referenced text when navigating to the element using the Arrow keys (Test UI-006)
  • Possible bug: when navigating into an input type=url element that includes an explicit label and a readonly attribute or a disabled attribute, JAWS does not announce the contents of the label element when navigating into the field using the Arrow keys (Test UI-009, Test UI-010)
ins ins test An addition to the document

voice change

insertion/end insertion

Element content
No special commands
Refer to: Scree Readers support for text level HTML semantics
kbd kbd test User input Element content No special commands
No semantics conveyed
label label test Caption for a form control    
 
legend legend test Caption for fieldset    
Refer to fieldset element
li ul li test
and
ol li test
List item  
  • Next Item in a List I
  • Previous Item in a List Shift + I

 
link No test Link metadata None expected No special commands   No UI
main main test Main content of a document  
  • Move to Main Region Q
  • Move to Next Region  R
  • Move to Previous RegionShift + R
  • Select a Region Insert + Ctrl + R

 
map map test Image map None expected No special commands   No UI
mark mark test Highlight Element content No special commands
No semantics conveyed
meta No test Text metadata None expected No special commands   No UI
meter meter test Gauge   No special commands
 
nav nav test Section with navigational links  
  • Move to Next Region  R
  • Move to Previous Region Shift + R
  • Select a Region Insert + Ctrl + R

 
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 Image, nested browsing context, or plugin  
  • Next Object Tag O (in < JAWS2018)
  • Previous Object Tag Shift + O (in < JAWS2018)
  • note: No navigation keys in JAWS 2018 >

 
ol ol test Ordered list  
  • List All Ordered, Unordered, and Definition Lists Ctrl + Insert + L
  • Next List L
  • Previous List Shift + I
  • Next Item in a List I
  • Previous item in a List Shift + I

 
optgroup optgroup test Group of options in a list box   No special commands
 
option option test Option in a list box or combo box control    
 
output output test Calculated output value    
No semantics conveyed
p p test Paragraph Element content
  • List of Paragraphs Ctrl + Insert + P
  • Next Paragraph P
  • Previous Paragraph Shift + P

No aural semantics, conveyed via navigation and paragraph list.
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
progress progress test Progress bar

value content, "progress bar" (if using arrow keys)

No special commands

Progress bars are not inherently focusable. But if a progress bar has a tabindex="0", then the accessible name of the progress bar will be announced on focus.

Progress bars can be navigated to via P quick key. The accessible name of the progress will be announced when focused in this manner.

q q test Quotation Element content No special commands
 
rb No test   Element content No special commands
No semantics conveyed
rp No test   Element content No special commands
No semantics conveyed
rt No test   Element content No special commands
No semantics conveyed
rtc No test   Element content No special commands
No semantics conveyed
ruby No test   Element content No special commands
 
samp samp test Computer output Element content No special commands
No semantics conveyed
s s test Inaccurate text Element content      
script No test Embedded script None expected No special commands No UI
section

section test

region examples

Generic document or application section    
No semantics conveyed unless the section has an accessible name.
select select test List box control  
  • Move To Next Combo Box C
  • Move to Prior Combo Box Shift+C
  • List of Combo boxes Ctrl + Insert + C

 
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
strong strong test Importance Element content No special commands
No semantics conveyed
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 button label text expanded/collapsed
  • List Buttons Ctrl + Insert + B
  • Next Button B
  • Previous button B

Article How do you figure? includes JAWS support notes.
sup sup test Superscript Element content No special commands
No semantics conveyed
svg svg test     No special commands
 
table

table test

complex table test

Data table  
  • List Tables Ctrl + Insert + T
  • Next Table T
  • Previous Table Shift + T
  • Select Table use F8. To select an entire table, move to the line that reads, "Table with x columns and y rows," and press F8.

 
tbody tbody test Group of rows in a data table Element content No special commands   No semantics conveyed
td td test Data cell in a data table  
  • Jump to Table Cell (from within a table) Ctrl+WINDOWS Key+J
  • Return to Previous Cell Ctrl+Shift+WINDOWS Key+J
  • Read current cell Ctrl+Alt+NUM PAD 5
  • Move to and Read Next Cell Ctrl+Alt+RIGHT ARROW
  • Move to and Read Prior Cell Ctrl+Alt+LEFT ARROW
  • Move to and Read Cell Above Ctrl+Alt+↑
  • Move to and Read Cell Below Ctrl+Alt+DOWN ARROW

 
template No test Template None expected No special commands   No UI
textarea textarea test Multiline text field label(if present), role, indication if it contains text.
  • List Edit Boxes Ctrl + Insert + E
  • Move To Next Edit Box E
  • Move to Prior Edit Box Shift + E

JAWS does not announce the content of a text area when navigated to. If the textarea has text in it; "Contains text" is announced. Refer to issue 42
tfoot tfoot test Group of footer rows in a data table Element content No special commands
No semantics conveyed
th th test Header cell in a data table    
 
thead thead test Group of header rows in a data table Element content No special commands
No semantics conveyed
time time test Machine-readable equivalent of date- or time-related data Element content No special commands
No semantics conveyed
title No test Document title Element content Read Window Title Insert + T
Semantics conveyed via navigation and announcement key stroke.
tr tr test Data table row  
  • Read Next Row WINDOWS Key+Alt+↓
  • Read Prior Row WINDOWS Key+Alt+UP ARROW
  • Read Current Row Alt+WINDOWS Key+COMMA
  • Read from Beginning of Row to Current Cell Insert + Shift + Home
  • Read from Current Cell to End of Row Insert+Shift+PAGE UP

 
track track test Timed text track Caption display control No special commands
 
u u test Keywords Element content No special commands
No semantics conveyed
ul ul test Unordered List  
  • List All Ordered, Unordered, and Definition Lists Ctrl + Insert + L
  • Next List L
  • Previous List Shift + I
  • Next Item in a List I
  • Previous item in a List Shift + I

 
var var test Variable Element content No special commands
No semantics conveyed
video video test Video Player "video" "group+accessible name" announces controls as navigated.  
 
wbr No test Line breaking opportunity None expected No special commands
No UI
Element Test Case Represents AURAL UI Interaction Semantics Conveyed Notes