TalkBack HTML Support
A Work in progress: Last updated 15 September 2025.
Editors: Gez Lemon, Catriona Morrison, Steve Faulkner
GitHub Repo: screen-reader-HTML-support
Found a bug? Please report it.
How HTML elements are supported by screen readers
Typical support patterns of HTML elements by screen readers:
- Identification of an element by role as the user moves through the content.
- Announcement of the text content of an element.
- Announcement of the start and end of an element.
- Change in voice as the content of an element is announced.
- Announcement of an elements accessible name and/or description
- Announcement of states and properties.
- Emission of a beep or other sound when an element with a particular state or property receives virtual focus.
- Instructions on how to operate interactive elements such as form controls.
- Navigation of elements by keyboard and “quick access” lists of a particular elements, list items are linked to each instance of an element on the page.
Note: The combination of patterns supported varies from element to element and support for a particular element varies between screen reader software.
Support legend
- means we have found this feature to be implemented interoperably (across multiple browsers)
- means the element has no expected semantics.
- means we are unsure whether this feature is supported, this may be due to lack of testing or lack of clarity around what 'support' of this feature is supposed to convey to the user.
- means we have found that this feature is not implemented
TalkBack on Android HTML Support Table
Element | Test Case | Represents | AURAL UI | Interaction | Supported | Notes |
---|---|---|---|---|---|---|
a |
a with href test |
A hyperlink | Element content + "link double-tap to activate" |
Use three-finger swipe to scroll through the navigate by options to reach "Links" to navigate by links. When this option is chosen:
|
TalkBack announces the type of link as follows:
|
|
a without href |
a with no href test |
An anchor | Ignored by TalkBack | No special interactions | Treated as regular text without any link functionality. | |
abbr
|
abbr
test |
An abbreviation | Value provided by the title attribute |
No special interactions |
No semantics conveyed by default The value of the |
|
address
|
address
test |
Contact information for a page or article element | Element content. | No special interactions | No specific emphasis conveyed. Accessible description announced when a valid aria-describedby attribute is present. |
|
area
|
area
test |
Hyperlink or dead area on an image map | alt content, "link" |
Use three-finger swipe to scroll through the navigate by options to reach "Links" to navigate by links. When this option is chosen:
|
Recognized as a link. | |
aria-level |
APG File Directory test | Hierarchical level of an element in a structure | Announced as "level" followed by the level number specified on headings | No special interaction | The level is only communicated when used on headings. It is not supported on listitem , treeitem , and row elements. |
|
article
|
article
test |
Self-contained syndicatable or reusable composition | Element content, "article" | No special interaction | Recognized as an article landmark region. Labelling techniques not supported. | |
aside |
aside test |
Sidebar for tangentially related content | element content, "complimentary | No special interaction | Recognized as a complimentary landmark region. aria-label supported, but no other labelling techniques supported. |
|
audio |
audio test |
Audio player | Not announced |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen and the
|
Nothing announced when the <audio> element has focus unless an aria-describedby is used. Buttons in the audio player are accessible. |
|
b |
b test |
Text bolded for utilitarian purposes | Element content | No special interaction | No change in voice, but the bold text is announced separately from the non-bold text. 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 interaction | No UI | |
bdi |
bdi test |
Text directionality isolation | Element content | No special interaction | No aural impact; structure-only element. | |
bdo |
bdo test |
Text directionality formatting | Element content | No special interaction | No special semantics conveyed. Reads text correctly regardless of direction. | |
blockquote |
blockquote test |
A section quoted from another source | Element content, "blockquote" | No special interaction | Content announced followed by, "blockquote". | |
body |
body test |
Document body | Element content | No special interaction | No special semantics conveyed. | |
br |
br test |
Line break, e.g. in poem or postal address | No special interaction | Line break | ||
button |
button test |
Button control | text label, "button" |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
Semantics conveyed via navigation and element name announcement. When the button has aria-pressed announces "toggle button, double tap to toggle". |
|
canvas |
canvas test |
Scriptable bitmap canvas | Element content | No special interaction | 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. | |
caption |
caption test |
Table caption | Element content | No special interaction | Announced when a table is navigated to. | |
cite |
cite test |
Reference to a creative work | Element content | No special interaction |
No semantics conveyed or expected as |
|
code |
code test |
Computer code | Element content | No special interaction |
No semantics conveyed or expected as |
|
col |
No test | Table column | None expected | No special interaction | No semantics conveyed | |
colgroup |
colgroup test |
Group of columns in a table | None expected | No special interaction | ||
data |
data test |
Machine-readable equivalent | Element content | No special interaction | No semantics conveyed or expected as <data> has a role="generic" |
|
datalist |
datalist test |
Container for options for combobox control | "Edit box" Element name |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
TalkBack does not indicate options are available. When the edit field is activated, the data list options are included at the top of the onscreen keyboard and discoverable by explore-by-touch. | |
dd |
dd test |
Content for corresponding dt element(s) | Element content, "definition" | No special interaction | TalkBack announces "Term" and "Definition" after the element content in a description list. | |
del |
del test |
A removal from the document | Element content, "deletion" | No special interaction | Refer to: Screen Readers support for text level HTML semantics | |
details |
details test |
Disclosure widget container | Announces state ("Expanded" or "Collapsed") Content name "disclosure triangle" | No special interaction | The updated state is announced when the user activates the button. Refer to summary element |
|
dfn |
dfn test |
Defining instance of a term | Element content, "term" | No special interaction | ||
dialog |
dialog test | The dialog element represents a transitory part of an application, in the form of a small window ("dialog box") | Accessible name if provided | When the dialog opens focus is moved to first focusable element. The 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 . |
If provided, the accessible description is not announced.
Note: Focus is contained within the |
|
div |
div test |
Generic flow container | Element content | No special interactions | No semantics conveyed | |
dl |
dl test |
Association list consisting of zero or more name-value groups | Element content, "term" or "definition" | No special interaction | TalkBack announces "Term" and "Definition" after the element content in a description list. | |
dt |
dt test |
Legend for corresponding dd element(s) | Element content, "term" | No special interaction | TalkBack announces "Term" and "Definition" after the element content in a description list. | |
em |
em test |
Stress emphasis | Element content | No special interaction | Uses intonation to convey emphasis. Refer to: Screen Readers support for text level HTML semantics | |
embed |
embed test |
Plugins | "Object" | No special interaction |
Depending on the content type, embedding content using <img> ,
<video> , <audio> , or <iframe> elements is preferable over the
<embed> element.
|
|
fieldset |
fieldset test |
Group of form controls | "In group" Element content | No special interaction | ||
figcaption |
figcaption test |
Caption for figure | Element content | No special interaction | No semantics conveyed. | |
figure |
figure test |
Figure with optional caption | Only image content announced | No special interaction | The figure semantics are not conveyed. The image is announced using the file name even when the image has an appropriate alt attribute. |
|
footer |
footer test |
Footer for a page or section | element content | No special interaction | The <footer> semantics are not conveyed, but the content in the footer is readable. |
|
form |
form test |
User-submittable form | element content |
There is no specific gesture to navigate to forms, but the generic gesture for form controls can be used. Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
No semantics conveyed. If the form has an accessible name, the accessible name is not announced by TalkBack. |
|
h1 - h6 |
h1 - h6 test |
Section heading | Announced as, heading content "heading" 1 to 6 |
Use three-finger swipe to scroll through the navigate by options to reach "Headings" to navigate by headings. When this option is chosen:
|
Identifies heading level and text. | |
head |
No test | Container for document metadata | None expected | No special interactions | No UI | |
header |
header test |
Introductory or navigational aids for a page or section | element content | No special interaction | No semantics conveyed. If the <header> has an accessible name, the accessible name is not announced by TalkBack. |
|
hr |
hr test |
Thematic break | Announced as, "Splitter" if it has an accessible name | No special command | Ignored unless the <hr> element has an accessible name. |
|
html |
No test | Root element | None expected | No special interactions | No semantics expected. | |
i |
i test |
Alternate voice | Element content | No special interactions | No semantics conveyed. Treated as a separate item in TalkBack's swipe order, unless CSS font-style: normal is used. |
|
iframe |
Nested browsing context | Announced as title attribute value if provided, otherwise just element content | No special interactions | No semantics conveyed, but if the <iframe> element has a title attribute, the iframe is included in TalkBack's swipe order, and the value of the title is announced without the role of "frame". |
||
img |
img test |
Image | Announced as alt attribute content "graphic" |
If added to the TalkBack navigation menu, in one motion, swipe down then right to open the TalkBack menu. Under navigation, navigate to "Images and videos" to navigate by images. When this option is chosen:
|
|
|
input [button] |
input [button] test |
Button control | Announced as Label content "button" |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [checkbox] |
input [checkbox] test |
Checkbox control | Announced as, checked/unchecked state Label content "checkbox" |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [color] |
input [color] test |
Colour picker control | Announced as RGB colour values without an accessible name |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
The colour picker dialog exposes the correct roles, names, and values, but it is not possible to give the button to launch the dialog an accessible name. It is announced by the currently selected hex value. For example, "#FFCC00 color picker" | |
input [date] |
input [date] test |
date (day/month year) picker control | Announced as "date picker" Label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
The date picker dialog exposes the correct roles, names, and values. | |
input [email] |
input [email] test |
text control for inputting email address | Announced as value (if provided) "edit box" Label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
Treated as a regular text input. | |
input [file] |
input [file] test |
File chooser control | Announced as file name "button" Label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [hidden] |
No test | hidden form control | None expected | No special commands | No UI | |
input [image] |
input [image] test |
Button control | Announced as Label content "button" |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [number] |
input [number] test |
Spin box control | value Label content "spin button" |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
Note: value in edit box is not announced when changed increase/decreased using arrow keys. | |
input [password] |
input [password] test |
Text control for inputting a password | "Password edit box" Label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
Note: keyboard character input announced as the number then "bullet replaced" number. For example, "2 bullet replaced 2" | |
input [range] |
input [range] test |
slider control | Current value Label content "slider swipe or swipe down to adjust |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
Slider value announced as it changes. | |
input [radio] |
input [radio] , test |
single choice from a set of options | Checked/not checked "in group option x of y" label content "radio button" where x = position in radio group, y = number of radio buttons in the group |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [reset] |
input [reset] test |
Button control for resetting a form | Label content/"Reset" "button" |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
If the button is not given an explicit accessible name, it has a default name of "Reset". | |
input [search]
|
input [search] test |
Text control for inputting search terms | "Search text field" label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
If an accessible name is not provided, it is announced as, "Search text field". | |
input [submit] |
input [submit] test |
Button control for submitting a form | label content "button" |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [tel] |
input [tel] test |
text box control for inputting a phone number | "Edit box" label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [text]
|
input [text] test |
text box control | "Edit box" label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [time] |
input [time] test |
Control for setting a specific time. | Currently selected time "Time picker" label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
input [url] |
input [url] test |
Text control for inputting a URL | "Edit box" label content |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
||
ins |
ins test |
An addition to the document | Element content "insertion" | No special interactions | Refer to: Screen Readers support for text level HTML semantics | |
kbd |
kbd test |
Represents user input | Element content | No special interactions | No semantics conveyed | |
label |
label test |
Caption for a form control | Label content announced when the corresponding form control has focus | No special interactions | ||
legend |
legend test |
Caption for fieldset
|
Legend content is announced when the legend has focus. | No special interactions | Although the legend serves as the group label for a group of form controls, it is not announced when the first element in the group has focus. | |
li |
List item | Element content followed by grouping information, such as "1 of X" | No special interactions | The bullet is included in TalkBack's swipe order with unordered lists, and the numeral is included in TalkBack's swipe order with ordered lists. | ||
link |
No test | Link metadata | None expected | No special interactions | No UI | |
main |
main test |
Main content of a document | No special interactions | No semantics conveyed. If the <main> element has an accessible name, the accessible name is not announced by TalkBack. |
||
map |
map test |
Image map | None expected | No special interactions | No UI | |
mark |
mark test |
Highlight | Element content "highlight" | No special interactions | ||
meta |
No test | Text metadata | None expected | No special interactions | No UI | |
meter |
meter test |
Gauge | Value Accessible name "meter" | No special interactions | ||
nav |
nav test |
Section with navigational links | Accessible name "landmark region" | No special interactions | No semantics conveyed. If the <nav> element has an accessible name, the accessible name is not announced by TalkBack. |
|
noscript |
No test | Fallback content for script | Content of <noscript> element read if JavaScript is not available/enabled |
No special interactions | Ignored when JavaScript is enabled. | |
object |
object test |
Image, nested browsing context, or plugin | Depends on embedded content | No special interactions | Support varies depending on object type. | |
ol |
ol test |
Ordered list | The list items are announced with grouping information, such as "1 of X". | No special interactions | The list itself is not included in TalkBack's swipe order; only the list items have focus. | |
optgroup |
optgroup test |
Group of options in a list box | Label content | No special interactions |
The <optgroup> label text is announced without the grouping context.
|
|
option |
option test |
Option in a list box or combo box control | "Selected" checked state Option content | No special interactions | The grouping information is not announced. | |
output |
output test |
Calculated output value | Reads output value | No special interactions | No semantics conveyed. | |
p |
p test |
Paragraph | Element content |
Use three-finger swipe to scroll through the navigate by options to reach "Paragraphs" to navigate by paragraphs. When this option is chosen:
|
No aural semantics. | |
param (obsolete) |
No test | Parameter for object | None expected | No special interactions | No UI | |
picture |
No test | Container to offer alternative versions of an image for different scenarios. | None expected | No special interactions | No UI | |
pre |
pre test |
Block of preformatted text | Element content | No special interactions | No semantics conveyed | |
progress |
progress test |
Progress bar | TalkBack will announce the value and then beeps to indicate progress if the progress bar has focus | No special interactions | The progress update is not announced by TalkBack unless the progress bar has focus. | |
q |
q test |
Quotation | Element content | No special interactions | ||
rb |
No test | Ruby base element | Element content | No special interactions | No semantics conveyed | |
rp |
No test | Fallback parenthesis for browsers that don't support Ruby | Element content | No special interactions | No semantics conveyed | |
rt |
No test | Represents an annotation | Element content | No special interactions | No semantics conveyed | |
rtc |
No test | Ruby text container | Element content | No special interactions | No semantics conveyed | |
ruby |
No test | Shows pronunciation | Element content | No special interactions | ||
s |
s test |
Inaccurate text | Element content "deletion" | No special interactions | ||
samp |
samp test |
Computer output | Element content | No special interactions | No semantics conveyed | |
script |
No test | Embedded script | None expected | No special interactions | No UI | |
section
|
Generic document or application section | Element content | No special interactions | No semantics conveyed, even if the section has an accessible name. | ||
select |
select test |
Combo box | "Collapsed" current value "menu popup button" accessible name |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
Provides list of options. | |
small |
small test |
Side comment | Element content | No special interactions | No semantics conveyed | |
source |
No test | Media source for video or audio | None expected | No special interactions | No UI | |
span |
span test |
Generic inline container | Reads content as normal text | No special interactions | No semantics conveyed | |
strong |
strong test |
Importance | Element content | No special interaction | No semantics conveyed | |
style |
No test | Embedded styling information | None expected | No special interactions | No UI | |
sub |
sub test |
Subscript | Element content | No special interactions | No semantics conveyed | |
summary
|
summary test |
disclosure widget control/label | Announced as "collapsed/expanded", label content, "disclosure triangle" |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
|
|
sup |
sup test |
Superscript | Element content | No special interaction | No semantics conveyed | |
svg |
svg test |
Scalable Vector Graphics |
|
If added to the TalkBack navigation menu, in one motion, swipe down then right to open the TalkBack menu. Under navigation, navigate to "Images and videos" to navigate by images. When this option is chosen:
|
|
|
table |
Data table | Announces as caption content, "In table", caption content "X rows. Y columns" |
When in a table, use three-finger swipe to scroll through the navigate by options to reach "Rows and columns" to navigate by rows and columns. When this option is chosen:
|
Provides structured navigation through rows/columns. Recognizes row/column headers and cell content. | ||
tbody |
tbody test |
Group of rows in a data table | Element content | No special interaction | No semantics conveyed | |
td |
td test |
Data cell in a data table | Announces cell content, "Row X. Column Y." |
When in a table, use three-finger swipe to scroll through the navigate by options to reach "Rows and columns" to navigate by rows and columns. When this option is chosen:
|
Announces row and column number of the cell. | |
template |
No test | Template | None expected | No special interaction | No UI | |
textarea |
textarea test |
Multiline text field | Announces as the value of any text in the edit field, "Edit box", label content, if present |
Use three-finger swipe to scroll through the navigate by options to reach "Controls" to navigate by controls. When this option is chosen:
|
Announces "double-tap to edit text" | |
tfoot |
tfoot
test
|
Group of footer rows in a data table | Element content | No special interaction | No semantics conveyed | |
th |
th test |
Header cell in a data table | Announces as cell content, "column/row header" |
When in a table, use three-finger swipe to scroll through the navigate by options to reach "Rows and columns" to navigate by rows and columns. When this option is chosen:
|
TalkBack recognises row/column headers | |
thead |
thead test |
Group of header rows in a data table | Element content | No special interaction | No semantics conveyed | |
time |
time test |
Machine-readable equivalent of date- or time-related data |
|
No special interaction | No semantics conveyed | |
title |
No test | Document title | Announces when the page loads as title content, "Web view" | No special interactions | Announced when the page/tab gains focus. | |
tr |
tr test |
Data table row | When navigating by rows and columns, announces as element content, row header content |
When in a table, use three-finger swipe to scroll through the navigate by options to reach "Rows and columns" to navigate by rows and columns. When this option is chosen:
|
Recognises row header, if present | |
track |
track test |
Timed text track | Announces current text track content when focused with TalkBack | No special interaction | No semantics conveyed | |
u |
u test |
Underlined text | Element content | No special interaction | No semantics conveyed | |
ul |
ul test |
Unordered List | Announces as "Bullet, 1 of X, X items" when first list item is focused. The following list items are announced with grouping information, such as "1 of X". | No special interactions | The list itself is not included in TalkBack's swipe order; only the list items have focus. | |
var |
var test |
Represents a variable |
|
No special interaction | No semantics conveyed | |
video |
video test |
Video Player | Announces as label content, "video" when focused. The individual controls then follow in the swipe order. |
Double-tap to play or pause the video file If added to the TalkBack navigation menu, in one motion, swipe down then right to open the TalkBack menu. Under navigation, navigate to "Images and videos" to navigate by videos. When this option is chosen:
|
|
|
wbr |
No test | Line breaking opportunity | None expected | No special interaction | No UI |