Reference > WCAG2 Level A
Issues due to failing to meet the WCAG2 Level A and US Section 508 accessibility guidelines
Code
Summary
Details
E860
SC 1.1.1: When using images, specify a short text alternative
If there is no alternative text, then assistive technologies are not able to identify the image or to convey its purpose to the user. So, add an
alt
, aria-label
or aria-labelledby
attribute as appropriate. See WCAG2 Failure F65.E8621
SC 1.1.1: The text alternative in ATTRIBUTE NAME must be meaningful
If the text in the 'text alternative' cannot be used in place of the non-text content without losing information or function then it fails because it is not an alternative to the non-text content. See WCAG2 Failure F30.
E8622
SC 1.1.1: The text alternative in ATTRIBUTE NAME must be meaningful
If the text in the 'text alternative' is equal to the file name then it is not meaningful, and so fails because it is not an alternative to the non-text content. See WCAG2 Failure F30.
P862
SC 1.1.1: When using a text alternative, it must be meaningful
If the text in the 'text alternative' cannot be used in place of the non-text content without losing information or function then it fails because it is not an alternative to the non-text content. See WCAG2 Failure F30.
E863
SC 1.1.1: The
title
, aria-label
and aria-labelledby
attributes should be missing or emptyWhen using
<img>
, it is valid to have an empty alt
attribute for images that have no content, but the title
, aria-label
and aria-labelledby
attributes should be missing or empty as well. See WCAG2 HTML Technique H67.P864
SC 1.1.1: Applets should have a text alternative in an
alt
attribute and in the body textWhen using
<applet>
, you should provide an alt
attribute with a non-blank value and provide a text alternative in the body text of the applet. See WCAG2 HTML Technique H35.P865
SC 1.1.1:
<object>
should have a text alternativeWhen using
<object>
, you should provide a text alternative in the body text of the object. See WCAG2 HTML Technique H53.P886
SC 1.1.1: Do not use the
alt
attribute hereAlthough HTML may allow the
alt
attribute here, it should only be used on image submit buttons. User agent support for this attribute on other types of form controls is not well defined. Other mechanisms are available to label these controls. See WCAG2 HTML Technique H36.P888
SC 1.1.1: The text alternative is too long
The text alternative is at least 100 characters long. For long descriptions you should use the
aria-describedby
attribute, a separate descriptive link, or an image map. See WCAG2 HTML Technique H45.P890
SC 1.1.1: Use an
aria-label
to provide an accessible nameThe button label used may not indicate the intended use for unsighted users. Use an
aria-label
to make its purpose clear. See WCAG2 ARIA Technique ARIA14.P900
SC 1.1.1: When using a text alternative, it must not include ASCII art or smileys
If the text in the text alternative does not sound meaningful when read aloud then it fails because it is not an alternative to the non-text content. See WCAG2 Failure F72.
P903
SC 1.1.1: Embedded objects should have a text alternative
When using
<embed>
, specify a short text equivalent with the alt
, aria-label
or aria-labelledby
attribute. See WCAG2 Guideline 1.1 Text Alternatives.W860
SC 1.1.1: Is the
alt
text deliberately empty?When using
<img>
, it is valid to have an empty alt
attribute for images that have no content; such as spacers and parts of larger images that have been broken up or used for other layout purposes. You may wish to check that in this case the alt
text has not simply been forgotten. See WCAG2 Failure F30.W862
SC 1.1.1: When using images, specify a short text alternative with the
alt
attributeIf there is no
alt
attribute, then assistive technologies are not able to identify the image or to convey its purpose to the user. This is only a warning and not an error because of the presence of the generator-unable-to-provide-required-alt
attribute. See WCAG2 Failure F65.W866
SC 1.1.1: The text alternative is too long
The text alternative is at least 75 characters long. For long descriptions you should use the
aria-describedby
attribute, a separate descriptive link, or an image map. See WCAG2 HTML Technique H45.W875
SC 1.1.1: The corresponding
<noembed>
element is missing or misplacedFor each
<embed>
element you should provide either a nested <noembed>
element or a <noembed>
element immediately following it. See WCAG2 HTML Technique H46.W8761
SC 1.1.1: Is the
aria-label
text deliberately empty?The
aria-label
attribute is used to provide a label for objects that can be read by assistive technology, but it has been found to be empty. You may wish to check that the text has not simply been forgotten. See WCAG2 ARIA Technique ARIA6.W8762
SC 1.1.1: Is the
aria-labelledby
text deliberately empty?The
aria-labelledby
attribute is used to provide a label for objects that can be read by assistive technology, but it has been found to be empty. You may wish to check that the text has not simply been forgotten. See WCAG2 ARIA Technique ARIA6.W8763
SC 1.1.1: Is the
aria-braillelabel
text deliberately empty?The
aria-braillelabel
attribute is used to provide a label for objects that can be read by assistive technology, but it has been found to be empty. You may wish to check that the text has not simply been forgotten. See WCAG2 ARIA Technique ARIA6.W894
SC 1.1.1: Duplicate alternative text TEXT. See matching tag on line: LINE NUMBER
Nearby images with the same alternative text (when read out aloud), often indicates redundancy. Consider removing the duplicate text, especially if the images are grouped together. See WCAG2 General Technique G196.
E8661 E8662
SC 1.1.1/1.3.1/3.3.2/4.1.2: User interface controls without a label should have an accessible name
Use the
aria-label
, aria-labelledby
, or where appropriate 'value', attributes to label form controls when the visual design cannot accommodate the label (for example, if there is no text on the screen that can be identified as a label) or where it might be confusing or not possible to use a label. User agents, including assisting technology, can use these attributes. See WCAG2 Failure F68.E885
SC 1.1.1/1.3.1/3.3.2/4.1.2: User interface controls should have a label or an accessible name
Associate form controls with
<label>
tags, or use the aria-label
or aria-labelledby
attributes to label controls where it might be confusing or not possible to use a label. See WCAG2 Failure F68.P861
SC 1.1.1/2.4.4: When using the
<area>
element, specify a short text alternative with the alt
attributeEnsure the
<area>
element alt
attribute value is displayed in response to attaining focus (including keyboard focus), and that this applies when images are loaded and not loaded. See WCAG2 HTML Technique H24.P871
SC 1.1.1/2.4.4: Link text is missing
Describe the purpose of a link by providing descriptive text as the content of the element, or provide an
aria-label
or aria-labelledby
attribute. The description lets a user distinguish this link from other links in the Web page and helps the user determine whether to follow the link. The URL of the destination is generally not sufficiently descriptive. See WCAG2 HTML Technique H30.W885
SC 1.1.1/2.4.4: Do not use the URL as link text
Describe the purpose of a link by providing descriptive text as the content of the
<a>
element. This description lets a user distinguish this link from other links in the Web page and helps the user determine whether to follow the link. The URL of the destination is generally not sufficiently descriptive. See WCAG2 HTML Technique H30.E893
SC 1.1.1/4.1.2: Do not use images as frame targets, always point
src
at web pagesRather than point directly to an image, embed the image in a web page so that if the content of the frame is changed the text-alternative can follow this change. See WCAG2 Failure F20.
W878
SC 1.2.1: Add a text alternative to describe the audio/visual media
Provide a text alternative to describe the audio/visual media that is being linked to or played by using text within this element, or a
aria-label
or aria-labelledby
attribute. See Understanding 1.2.1.W879
SC 1.2.1: Add a parent
<video>
element to provide better accessibilityThe HTML5
<video>
element provides better support for captions and text transcripts. So, either replace this element with <video>
, or wrap it within <video>
if you still need to support legacy browsers.W880
SC 1.2.1: Add a parent
<audio>
element to provide better accessibilityThe HTML5
<audio>
element provides better support for text transcripts. So, either replace this element with <audio>
, or wrap it within <audio>
if you still need to support legacy browsers.I881
SC 1.2.1: Ensure there is a text description of this audio
Text can be made accessible to everyone. So, unless this is a media alternative for text (and is clearly labelled as such), provide a text description or transcript. This may be done by adding a link to the description (immediately following this), or by adding an
aria-describedby
attribute. See Understanding 1.2.1.W882
SC 1.2.2: Where possible ensure that captions for video are provided and accessible
If there is a caption track for the video then use the <track> element to refer to it. See Understanding 1.2.2.
I882
SC 1.2.2: Where possible ensure that captions for video are provided and accessible
f there is a caption track for the video then ensure that the video player can display them and they are in sync with the video. See Understanding 1.2.2.
W883
SC 1.2.3: Ensure there is a text description of this video
Text can be made accessible to everyone. So, unless this is a media alternative for text (and is clearly labelled as such), provide a text description or transcript. This may be done by adding a link to the description (immediately following this), or by adding an
aria-describedby
attribute, or with the <video>
element. If a descriptive track exists, you can refer to it using the <track> element. See Understanding 1.2.3.E873
SC 1.3.1: The
summary
and <caption>
are the sameE876
SC 1.3.1: The accessible name and description must be different
The name is used to identify and/or provide a summary, the description describes the table in more detail. See Accessibility API Mappings: Table Element, and Understanding 1.3.1.
E877
SC 1.3.1: Invalid value for
scope
attributeThe
scope
attribute must have one of the following values: row
, col
, rowgroup
, or colgroup
. See WCAG2 HTML Technique H63.E8791
SC 1.3.1: The data table does not have an accessible name
Data tables must have accessible names to help identify them. The accessible name is provided by
aria-labelledby
> aria-label
> <caption>
> title
> summary
. See Understanding 1.3.1.E8792
SC 1.3.1: The accessible name NAME is not unique. See matching tags on lines: LINE NUMBERS
Data tables must have unique accessible names to help differentiate between each table on the page. The accessible name is provided by
aria-labelledby
> aria-label
> <caption>
> title
> summary
. If tables contain the same information then number them in the accessible name. See Understanding 1.3.1.E880
SC 1.3.1: For complex data tables explicitly associate data cells and header cells
For complex data tables you must use markup to explicitly associate data cells and header cells, and no such markup was found. See WCAG2 Failure F91.
P883
SC 1.3.1: Nest headings properly (
H1
> H2
> H3
)Heading elements must be ordered properly. For example,
H2
elements should follow H1
elements, H3
elements should follow H2
elements, etc. Developers should not skip levels or use headings for presentation effects. See WCAG2 Failure F43.E904
SC 1.3.1: Label text is missing
Associate labels properly with their controls. See WCAG2 Failure F68.
E905
SC 1.3.1: Associate labels with just one form control
Associate labels properly with their controls. See WCAG2 Failure F68.
E909
SC 1.3.1: Only associate labels with specific form controls
Associate labels properly with their controls. See WCAG2 Failure F68.
E8891
SC 1.3.1: Layout tables cannot have
title
, caption
or summary
attributesThis has been marked as a layout table, but this table contains attributes that must only be used with data tables. Remove these attributes to fix this problem. See WCAG2 Failure F46.
E8892
SC 1.3.1: Layout tables cannot have data table elements
This has been marked as a layout table, and layout tables can only contain
<tr>
and <td>
elements (without scoped
or header
attributes). So either remove this element (or the offending attributes) to fix this problem. See WCAG2 Failure F46.P892
SC 1.3.1: Do not use TAG NAME for presentation effects
Tags that are being used purely to create a visual presentation effect should not be used. You should use CSS to control layout and presentation so that users and their aids may control it. See WCAG2 General Technique G140.
E8951
SC 1.3.1: ATTRIBUTE NAME references a missing or incorrect
id
attributeReferences to other parts of the same document must exist to ensure that Web pages can be interpreted properly. Note that certain attributes such as
for
can only reference certain elements in the same <form>
. See Understanding 1.3.1.E8952
SC 1.3.1: The values in the
headers
attribute must have matching the table cell 'ids'When you include a
headers
attribute to associate one cell with another you must provide matching 'ids' in header cells in the same table. A header cell being either a <th>
or a <td>
within <thead>
. See Understanding 1.3.1.E9591
SC 1.3.1: The value of ATTRIBUTE NAME must match an
id
in the same documentEach of the ids listed for this aria attribute must match elements elsewhere in the document. See ARIA 1.2.
E9592
SC 1.3.1: The value of ATTRIBUTE NAME must match an
id
in the same documentOne of the ids listed for this aria attribute must match elements elsewhere in the document. See ARIA 1.2.
E962
SC 1.3.1: Elements with the ROLE role must be owned by an element with one of these roles: LIST OF ROLES
The ARIA specification requires that elements with certain roles must be contained within or owned by elements with other roles. So you need to add one of the roles listed to an owning element. See ARIA 1.2.
E963
SC 1.3.1: Elements with the ROLE role must be owned by an element with one of these roles: LIST OF ROLES
The ARIA specification requires that elements with certain roles must contain or own elements with specific roles. So you need to add one or more of the roles listed to an owned element. See ARIA 1.2.
E9651
SC 1.3.1: The ATTRIBUTE NAME attribute does not have a valid value: MORE INFORMATION
The ARIA specification allows
role
and aria-*
attributes to only have certain values. Usually a list of valid values will be displayed when you see this message. See ARIA 1.2.P908
SC 1.3.1: Do not insert content using CSS
Content inserted using CSS may not appear when CSS is turned off, or the user is using their own accessible style sheet. See WCAG2 Failure F87.
P909
SC 1.3.1: Use semantic markup to convey information
Information conveyed using CSS will be misunderstood by accessibility aids. For example, you should use
<strong>
in place of font-weight:bold
on <span>
. See WCAG2 Failure F2.P963
SC 1.3.1: The parent tag has a role that must only own an element with one of these roles: LIST OF ROLES
The ARIA specification requires that elements with certain roles must only contain or own elements with specific roles. So you need to move or remove this, or change its role. See ARIA 1.2.
W877
SC 1.3.1: Distinguish between navigation groups using an ARIA label
When the
<nav>
element is employed more than once on a page, distinguish between the navigation groups by using an aria-label
or aria-labelledby
attribute. See WCAG2 HTML Technique H97.W886
SC 1.3.1: Heading markup should be used if this is a heading
This paragraph of text is all bold/strong or all italic/em text and so will look like a heading on screen. Use heading markup if that is the intention, so that accessibility aids will recognise it as such. See WCAG2 HTML Technique H42.
W887
SC 1.3.1: Each table header cell should be related to at least one data cell
No data cell could be found that is related to this header. This header appears redundant and so may cause confusion. See WCAG2 HTML Technique H43 and related techniques.
W888
SC 1.3.1: Using
<pre>
is often a bad ideaUsing
<pre>
implies the content has structure, which screen readers may not be able to convey. If the structure is important then consider using other markup that screen readers can properly interpret such as lists or tables, or provide alternative text to inform users about the structure. See Understanding 1.3.1.W892
SC 1.3.1: Provide an accessible description for complex data tables
Use
aria-describedby
, <caption>
, title
or summary
attributes to describe the table. This must be a full description and not a short one. If you see this warning even though you have provided a <caption>
, title
or summary
, then this has most likely already been used to provide the accessible name. See Accessibility API Mappings: Table Element, and Understanding 1.3.1.E881
SC 1.3.1/3.3.2: The
<fieldset>
element should only be used within a formUsing a
<fieldset>
outside of a form usually indicates it is being used for presentation effects. See WCAG2 HTML Technique H71.W863
SC 1.3.1/3.3.2: The
<fieldset>
element should be used to group radio buttons and checkboxesBecause groups of radio buttons and checkboxes are multiple controls, it is particularly important that they be grouped semantically so they can be more easily treated as a single control. See WCAG2 HTML Technique H71.
W865
SC 1.3.1/3.3.2: Each
<fieldset>
should have a <legend>
element that includes a description of that groupThe first element inside the
<fieldset>
should be a <legend>
, which provides a label or instructions for the group. See WCAG2 HTML Technique H71.E899
SC 1.3.2: Nested tables are difficult to for screen readers to read
Screen readers can struggle to read out tables sensibly, and nesting them makes them almost impossible to understand when read out. Either combine the tables into one, or use alternative markup to represent them. See WCAG2 Failure F49.
I899
SC 1.3.2: Layout tables must represent their content in a meaningful sequence
Screen readers can struggle to read out tables sensibly, so it is often better to use alternative markup and CSS to layout content. Try disabling the table markup to see if it still makes sense. See WCAG2 Failure F49.
P881
SC 1.4.2: Audio that auto-plays must have a means to stop it
Media content with audio that automatically starts playing when the page loads must provide a means for the user able to stop, pause or mute it. If the audio lasts more than 3 seconds and there is no other way of stopping it you should add the
controls
attribute. See WCAG2 Failure F93.E891
SC 2.1.1: Server-side image maps created using
ismap
are not keyboard accessibleConsider an accessible alternative. See Understanding 2.1.1.
E9001
SC 2.1.1: An
<a>
without an href
cannot receive keyboard focusIf there is no link then there must be no alternative text provided. So, remove any
title
, aria-label
or aria-labelledby
attributes. See WCAG2 Success Criterion 2.1.1.E9002
SC 2.1.1: An
<area>
without an href
cannot receive keyboard focusIf there is no link then there must be no alternative text provided. So, remove any
alt
, title
, aria-label
or aria-labelledby
attributes. See WCAG2 Success Criterion 2.1.1.E902
SC 2.1.1: Non-interactive element with
onkey*
attributeYou must add a
tabindex
attribute to non-interactive elements that have onkey*
event handlers to make them focusable. Otherwise users will not be able to tab to it to be able to fire the onkey*
event. See WCAG2 Success Criterion 2.1.1.E9603
SC 2.1.1: Do not use a negative
tabindex
when there are sequentially focusable elements within the srcdoc
Using a negative
tabindex
will prevent sequentially focusable elements within the srcdoc
from being keyboard accessible. You should remove the tabindex
attribute or change it to be non-negative. See WCAG2 Success Criterion 2.1.1.W884
SC 2.1.1: Mouse/Pointer event handlers require keyboard equivalents
When using mouse/pointer event handlers on elements that can be accessed by keyboard, ensure that you provide an equivalent keyboard handler. See WCAG2 Failure F54.
W900
SC 2.1.1: The scrollable content is not keyboard accessible
If there is scrollable content that should be viewed by all users, it must be keyboard accessible. See Understanding 2.1.1.
I870
SC 2.1.1/2.1.2: Ensure that there is keyboard support and no trap for interactive elements
All interactive items on a page must provide keyboard support so they can be used without a mouse. In addition, you should be able to use the keyboard to exit the item to the web page the item is embedded in, so the user does not become trapped in it. A common way of avoiding traps is to add
tabindex=-1
to the element so users cannot accidentally tab into it. See WCAG2 Success Criterion 2.1.E887
SC 2.1.1/3.2.1: Do not remove focus when focus is received
The system focus indicator is an important part of accessibility for keyboard users. Removing focus entirely means the content can only be accessed by a pointer device. See WCAG2 Failure F55.
E8821
SC 2.2.1: Do not use
content
to create pages that refreshPages that periodically refresh can upset screen readers and disorient sighted users. See WCAG2 Failure F41.
E9011
SC 2.2.1: You should not use a non-zero page redirect with
content
It is important that the time-out is set to zero or less than 20 hours, to avoid content being displayed before the new page is loaded. See WCAG2 Failure F40.
E906
SC 2.2.1: You should not use a non-zero page redirect
Pages that automatically refresh can upset screen readers and disorient sighted users. See WCAG2 Failure F58.
E884
SC 2.2.2: Do not use
<blink>
. Consider <em>
or using CSS insteadUsing
<blink>
causes any text inside the element to blink at a predetermined rate, which cannot be interrupted by the user or disabled. See WCAG2 Failure F47.E890
SC 2.2.2: Do not use
<marquee>
. Consider an alternative insteadWith the
<marquee>
element there is moving or scrolling content that cannot be paused and resumed by users. Some users with low vision or cognitive disabilities will not be able to perceive the content. See WCAG2 Failure F16.E907
SC 2.2.2: Do not use
blink
Using
blink
can cause a severe distraction for users. See WCAG2 Failure F4.P882
SC 2.2.2: Videos that auto-play must have a means to stop them
Media content with video that automatically starts playing when the page loads must provide a means for the user able to stop, or pause it. If the video lasts more than 5 seconds and there is no other way of stopping it you should add the
controls
attribute. See Understanding 2.2.2.W869
SC 2.4.1: Use heading elements to convey structure
Many assistive technologies provide navigation using headings, including skipping navigational links. If your document has any structure you should use heading markup to convey the structure of the content. Even a single header will make it easier for users. See WCAG2 HTML Technique H69.
W870
SC 2.4.1: Skip navigation links should be the first link on a page
A skip navigation link was detected but it was not the first link on the page. Unless it is the first link then it may defeat the point for users. See Understanding 2.4.1, and Skip Navigation.
W871
SC 2.4.1: Skip navigation links should not be hidden within images
Hidden skip navigation links may not be accessible. You should consider replacing this with a visible link and using CSS to hide it until the tab key is used. See Understanding 2.4.1, and Skip Navigation.
W874
SC 2.4.1: Add a skip navigation link as the first link on the page
If your document has structure then you should add a skip navigation link to make it easier for accessible users to get to the page's content. To ensure detection, skip navigation links should point to a
<main>
element, or an element with role='main'
. See Understanding 2.4.1, and Skip Navigation.E8781 E8782
SC 2.4.1/4.1.2: Add a
title
attribute to facilitate identification and navigationTitle each
<frame>
and <iframe>
to facilitate identification and navigation. See WCAG2 HTML Technique H64.E869
SC 2.4.2: Add a
<title>
tag to the page to describe itYou should always provide a
<title>
element in the head section that defines in a simple phrase the purpose of the document. See WCAG2 Failure F25.E870
SC 2.4.2: Add a concise, meaningful
<title>
tag to the page to describe itThe
<title>
should contain a concise, meaningful description, less than 150 characters long. See WCAG2 Failure F25.I885
SC 2.4.3: When
tabindex
is used the tab order may become incorrectWhen using
tabindex
, changes to the page can easily change the tab order such that it no longer follows logical relationships and sequences in the content. So, you should manually check any pages that use tabindex
to be sure they still make sense. See WCAG2 Failure F44.E867
SC 2.4.4: Unnecessary duplication of link text. See matching tag on line: LINE NUMBER
A 'stuttering' effect occurs when you have two adjacent links with the same link text (when read aloud). Consider combining the links into one and removing any redundant link text. See WCAG2 HTML Technique H2.
E868
SC 2.4.4: Unnecessary duplication of link text. See matching tag on line: LINE NUMBER
A 'stuttering' effect occurs when you have the same link text (when read aloud) as the
alt
text of images within the link. Consider removing the alt
text of the image where the link text already provides the context for the image. See WCAG2 HTML Technique H2.W861
SC 2.4.4: Is the
title
text deliberately empty?The
title
attribute is used to provide additional information to help clarify or further describe the purpose of a link, but it has been found to be empty. You may wish to check that the title text has not simply been forgotten. See WCAG2 HTML Technique H33.W867
SC 2.4.4: Identical adjacent link text TEXT. See matching tag on line: LINE NUMBER
If you have adjacent links to the same place with different link text (when read aloud) it can be confusing to the user. You should consider combining these into one link and removing any redundant link text. See Understanding 2.4.4.
W868
SC 2.4.4: Different adjacent links with the same link text TEXT. See matching tag on line: LINE NUMBER
If you have adjacent links to different places, but with the same link text (when read aloud), it can be confusing to the user. So, you should either change the link text or add a unique
aria-label
or aria-labelledby
attribute to each link. See Understanding 2.4.4.E9081
SC 2.5.3: The accessible name in
aria-label
must contain the visible label textThe accessible name used by accessibility aids must contain the text displayed by the visible label. When choosing the text remember that both the name and the label may be read out aloud. See Understanding 2.5.3 and Accessibility API Mappings.
E9082
SC 2.5.3: The accessible name referenced by
aria-labelledby
must contain the visible label textThe accessible name used by accessibility aids must contain the text displayed by the visible label. When choosing the text remember that both the name and the label may be read out aloud. See Understanding 2.5.3 and Accessibility API Mappings.
E9661
SC 3.1.1: The
lang
or xml:lang
attribute does not have a valid valueThe attribute contains an unrecognised, or malformed language code. See Tags for Identifying Languages, and WCAG2 HTML Technique H57.
E9662
SC 3.1.2: The
lang
or xml:lang
attribute does not have a valid valueThe attribute contains an unrecognised, or malformed language code. See Tags for Identifying Languages, and WCAG2 HTML Technique H58.
P967
SC 3.1.1: Use the
lang
attribute to denote the primary language of the documentYou should always identify the primary natural language of a document using a
lang
attribute on the <html>
element. See WCAG2 HTML Technique H57.P969
SC 3.1.1: Missing
<html>
tag with lang
attributeYou should add a
<html>
tag with a lang
attribute to identify the primary natural language of the document. See WCAG2 HTML Technique H57.W8641 W8642
SC 3.1.1: The
xml:lang
and lang
attributes should have the same valueWhen
xml:lang
and lang
attributes appear in the same element they should have the same value. See WCAG2 HTML Technique H57.E872
SC 3.2.2: The submit button is missing
You must provide a mechanism that allows users to explicitly request changes of context. The intended use of a submit button is to generate an HTTP request that submits data entered in a form, so it is an appropriate control to use for causing a change of context. See WCAG2 HTML Technique H32.
E875
SC 3.2.2: Automatically submitting forms using
onchange
prevents keyboard operationUsing
onchange
prevents keyboard operation by unexpectedly changing the context. See WCAG2 Failure F36.W872
SC 3.2.2: Using
onchange
with selections may prevent keyboard operationUsing
onchange
with selections may prevent keyboard operation, because the handler fires as the selection is changed using the keyboard, which may move the focus or change the context. See Understanding 3.2.2.W895
SC 3.2.2: A submit button is missing
You must provide a mechanism that allows users to explicitly request changes of context. The intended use of a submit button is to generate an HTTP request that submits data entered in a form, so it is an appropriate control to use for causing a change of context. See WCAG2 HTML Technique H32.
E874
SC 3.3.2: The matching
<label>
text must appear before/after the controlAssociate labels properly with their controls. See WCAG2 HTML Technique H44.
E898
SC 4.1.2: Heading with no content
Ensure that all headings contain informative content. This is necessary because users may navigate or search by headings. Ideally use content to provide this. Failing that use
aria-labelledby
if a visible label is present, otherwise use aria-label
. See the 'heading' entry of Accessible Name Guidance by Role.E950
SC 4.1.2: This role must have an accessible name
Some ARIA roles are required to have an accessible name to allow accessibility aids to interact properly with them. Use
aria-labelledby
if a visible label is present, otherwise use aria-label
to provide this. See Accessible Name Guidance by Role.E951
SC 4.1.2: This role must have an accessible name
Some ARIA roles are required to have an accessible name to allow accessibility aids to interact properly with them. Ideally use content to provide this. Failing that use
aria-labelledby
if a visible label is present, otherwise use aria-label
. See Accessible Name Guidance by Role.E952
SC 4.1.2: This role must not have an accessible name
Some ARIA roles must not have an accessible name as it may confuse some accessibility aids. You should remove any
aria-labelledby
or aria-label
attributes. See Accessible Name Guidance by Role.E953
SC 4.1.2: User interface components must have an accessible name
User interface components are required to have an accessible name to allow users interact properly with them when using accessibility aids. Use
aria-labelledby
if a visible label is present, otherwise use aria-label
to provide this. See Understanding 4.1.2.E9542
SC 4.1.2: Interactive elements are not allowed here
When using ARIA roles there are additional rules where interactive elements may appear. This error may also be caused by incorrectly nesting tags, missing end tags, or similar structural issues. So if it is not obvious what is wrong, fix any structural issues first. See ARIA in HTML.
E955
SC 4.1.2: ARIA attributes such as
role
and aria-*
are not valid hereSome elements (sometimes combined with certain attributes) cannot have ARIA attributes specified. See ARIA in HTML.
E956
SC 4.1.2: The value of the
role
attribute is not valid for this elementElements can only have specific roles as defined by the ARIA specification. So, you may be better off using a more appropriate element for this role. See ARIA in HTML.
E957
SC 4.1.2: The ATTRIBUTE NAME attribute for this ARIA role is missing
The ARIA specification requires that the attribute indicated should be used with the specified roles. See ARIA 1.2.
E958
SC 4.1.2: The ATTRIBUTE NAME attribute is not allowed in this context
The ARIA specification only allows certain
aria-*
attributes to be used with certain roles. See ARIA 1.2.E9601
SC 4.1.2: Do not use
role=presentation|none
with a focusable elementUsing this with an interactive element, or one with a positive
tabindex
, will result in some users focusing on 'nothing'. Remove the role, or use tabindex=-1
so it is not sequentially focusable. See Fourth Rule of ARIA Use.E9602
SC 4.1.2: Do not use
aria-hidden=true
with a focusable elementUsing this with an interactive element, or one with a positive
tabindex
, will result in some users focusing on 'nothing' when they tab to it. Remove the aria-hidden
, or use tabindex=-1
so it is not sequentially focusable. See Fourth Rule of ARIA Use.E961
SC 4.1.2: Do not mix
role=presentation|none
and global ARIA attributesWhen global ARIA attributes are present using
role=presentation|none
has no effect. You should either remove all the aria-*
attributes or change or remove the role
. See Conditions that cause 'presentation' to be ignored.E964
SC 4.1.2: The ATTRIBUTE NAME attribute is not allowed here
The ARIA specification only allows certain
aria-*
attributes. See ARIA 1.2.E9652
SC 4.1.2: The ATTRIBUTE NAME attribute does not have a valid value: MORE INFORMATION
The ARIA specification allows
role
and aria-*
attributes to only have certain values. Usually a list of valid values will be displayed when you see this message. See ARIA 1.2.E968
SC 4.1.2: You must not use ARIA ATTRIBUTE NAME as this conflicts with ATTRIBUTE NAME
Web developers must not use an
aria-*
attribute when it conflicts with an equivalent regular attribute for an element. See ARIA in HTML.E969
SC 4.1.2: Missing
aria-roledescription
attributeW889
SC 4.1.2: Avoid using fallback accessible names generated for
<input>
An accessible name generated from default values for
<input>
buttons, typically yields a low quality accessible name, which may not always be supported. Instead use the recommended way of setting the accessible name for this element. See Avoid Fallback, and Accessible Name Computation.W890
SC 4.1.2: Avoid using accessible names created from
title
An accessible name generated from
title
typically yields a low quality accessible name, which may not always be supported. Instead use the recommended way of setting the accessible name for this element. See Avoid Fallback, and Accessible Name Computation.W891
SC 4.1.2: Avoid using accessible names created from
placeholder
An accessible name generated from
placeholder
typically yields a low quality accessible name, which may not always be supported. Instead use the recommended way of setting the accessible name for this element. See Avoid Fallback, and Accessible Name Computation.W893
SC 4.1.2: You should use the elements h1-h6 instead of the 'heading' role
The 'heading' role and 'aria-level' attribute should only be used to retrofit accessibility on legacy code that you cannot make major changes to. See First Rule of ARIA Use.
W896
SC 4.1.2: You should not use ARIA roles or attributes, that are the default for the element
Web developers should not set the ARIA
role
and aria-*
attributes to values that match the default implicit ARIA semantics. See ARIA in HTML.W897
SC 4.1.2: You should not use ARIA ATTRIBUTE NAME in place of ATTRIBUTE
Web developers should not use
aria-*
attributes when there is an equivalent regular attribute for an element. See ARIA in HTML.W898
SC 4.1.2: The ARIA FEATURE has been deprecated
Deprecated features could be removed at any time, so you should not rely on them. The ARIA specification will usually provide an alternative or state why it should not be used at all. See ARIA 1.2.
W899
SC 4.1.2: You should not use the
generic
roleThe
generic
role is the implicit role of generic elements for use by user agents only. It should not be used by web authors. See ARIA in HTML.W901
SC 4.1.2: Avoid using ARIA roles that are not recommended
If possible, consider using a different HTML element which allows the specified role. See ARIA in HTML.
I8602
SC 4.1.2: No HTML validation was selected
You should always select a HTML validation to ensure that the page does not have any issues which may prevent accessibility aids from properly representing the page. See WCAG2 HTML Technique H88.
I873
SC 4.1.2: Unique accessible name required for
<iframe>
s pointing to different resources. See matching tags on lines: LINE NUMBERS<iframe>
s must have unique accessible names when pointing to different resources. If the resources are different you should make the names unique, so that accessibility aids can distinguish between them. The accessible name is provided by aria-labelledby
> aria-label
> title
. See Understanding 4.1.2.Reference > WCAG2 Level AA
Issues due to failing to meet the WCAG2 Level AA and US Section 508 accessibility guidelines
Code
Summary
Details
E9151 E9152
SC 1.3.5: The
autocomplete
attribute is incorrectThe
autocomplete
attribute is a very important aid, and so must always be used correctly. There are strict rules as to what values it can have, and these vary depending on the context it is used in. See WCAG2 Failure F107.P9111 P9112
SC 1.4.3: Large text within this element has a low contrast ratio. Detected ratio: RATIO
Ensure that the visual presentation of large text has a contrast ratio of at least 3:1, so that it is easy to read. See WCAG2 Success Criterion 1.4.3.
P9121 P9122
SC 1.4.3: Text within this element has a low contrast ratio. Detected ratio: RATIO
Ensure that the visual presentation of text has a contrast ratio of at least 4.5:1, so that it is easy to read. See WCAG2 Success Criterion 1.4.3.
I863
SC 1.4.3: Using a background image or gradient can make text difficult to read
When using background images or gradients, ensure that the visual presentation of text has a large enough contrast ratio, so that it is easy to read. See WCAG2 Success Criterion 1.4.3.
I864
SC 1.4.3: Using a text shadow can make text difficult to read
Although text shadows may be used to enhance contrast, they may also make things worse. So when using text shadows, ensure that there is a large enough contrast ratio, so that it is easy to read. See WCAG2 Success Criterion 1.4.3.
E910
SC 1.4.4: Use relative rather than absolute units with ATTRIBUTE NAME
Using relative units helps the page to be rendered correctly at different resolutions and allows people with sight difficulties to 'zoom in' to pages to read them. See Understanding 1.4.4.
E916
SC 1.4.4: Do not use
viewport
settings which prevent the user from zooming inUsing
user-scalable=no
or maximum-scale
with a value less than 2.0 may prevent people with sight difficulties from being able to 'zoom in' to pages to read them. See Understanding 1.4.4.P917
SC 1.4.12: Do not use
!important
with letter-spacing
, word-spacing
or line-height
in style
attributesAccessibility aids may not be able to override this when it is used in a
style
attribute with !important
set. This may mean that users are not be able to read the text. See WCAG2 Success Criterion 1.4.12.W917
SC 1.4.12: Do not use
!important
with letter-spacing
, word-spacing
or line-height
in style
attributesAccessibility aids may not be able to override this when it is used in a
style
attribute with !important
set. This may mean that users are not be able to read the text. See WCAG2 Success Criterion 1.4.12.I910
SC 2.4.5: Ensure there is more than one way to locate each web page
Ensure that there is more than one way to navigate to each page on the website. This is commonly achieved by adding a link to a site map, or a search facility, to each page. See WCAG2 Success Criterion 2.4.5.
E8791
SC 2.4.6: The data table does not have an accessible name
Data tables must have accessible names to help identify them. The accessible name is provided by
aria-labelledby
> aria-label
> <caption>
> title
> summary
. See Understanding 2.4.6.E8792
SC 2.4.6: The accessible name NAME is not unique. See matching tags on lines: LINE NUMBERS
Data tables must have unique accessible names (when read aloud) to help differentiate between each table on the page. The accessible name is provided by
aria-labelledby
> aria-label
> <caption>
> title
> summary
. If two tables contain the same information then number them in the accessible name. See Understanding 2.4.6.E913
SC 2.4.6: The form control label LABEL is not unique. See matching tags on lines: LINE NUMBERS
Use unique labels so that users can distinguish between form controls on the same page when read out aloud. Alternatively, place them within different
<fieldset>
with unique <legend>
labels, because the legend text is read out along with the label text. See WCAG2 Success Criterion 2.4.6.W911
SC 2.4.6: Provide descriptive text
Any descriptive text supplied should be clear. See WCAG2 General Technique G131.
E887
SC 2.4.7: Do not use
onfocus
to remove focus when focus is receivedThe system focus indicator is an important part of accessibility for keyboard users. Removing focus entirely means the content can only be accessed by a pointer device. See WCAG2 Failure F55.
E914
SC 2.4.7: Do not remove the visual focus indicator or render it invisible
Turning off the focus indicator, or using styling which may make it difficult to see the focus indicator, prevents people from knowing which element has the keyboard focus. See WCAG2 Failure F78.
Reference > WCAG2 Level AAA
Issues due to failing to meet the WCAG2 Level AAA accessibility guidelines
Code
Summary
Details
P9231 P9232
SC 1.4.6: Large text within this element has a low contrast ratio. Detected ratio: RATIO
Ensure that the visual presentation of large text has a contrast ratio of at least 4.5:1, so that it is easy to read. See WCAG2 Success Criterion 1.4.6.
P9241 P9242
SC 1.4.6: Text within this element has a low contrast ratio. Detected ratio: RATIO
Ensure that the visual presentation of text has a contrast ratio of at least 7:1, so that it is easy to read. See WCAG2 Success Criterion 1.4.6.
E921
SC 1.4.8: You should not use justified text
Many people with cognitive disabilities have a great deal of trouble with blocks of text that are justified (aligned to both the left and the right margins). See WCAG2 Failure F88.
E887
SC 2.1.3: Do not remove focus when focus is received
The system focus indicator is an important part of accessibility for keyboard users. Removing focus entirely means the content can only be accessed by a pointer device. See WCAG2 Failure F55.
E891
SC 2.1.3: Server-side image maps created using
ismap
are not keyboard accessibleConsider an accessible alternative. See Understanding 2.1.3.
W884
SC 2.1.3: Mouse/Pointer event handlers require keyboard equivalents
When using mouse/pointer event handlers, ensure that you provide an equivalent keyboard handler. See WCAG2 Failure F54.
W900
SC 2.1.3: The scrollable content is not keyboard accessible
If there is scrollable content that should be viewed by all users, it must be keyboard accessible. See Understanding 2.1.3.
E9011 E9012
SC 2.2.4: You should not use a non-zero page redirect with
content
It is important that the time-out is set to zero or less than 20 hours, to avoid content being displayed before the new page is loaded. See WCAG2 Failure F40.
E8821 E8822
SC 2.2.4/3.2.5: Do not use
content
to create pages that refreshPages that periodically refresh can upset screen readers and disorient sighted users. See WCAG2 Failure F41.
E867
SC 2.4.9: Unnecessary duplication of the link text TEXT. See matching tag on line: LINE NUMBER
A 'stuttering' effect occurs when you have two adjacent links with the same link text (when read aloud). Consider combining the links into one and removing any redundant link text. See WCAG2 HTML Technique H2.
E868
SC 2.4.9: Unnecessary duplication of the link text TEXT. See matching tag on line: LINE NUMBER
A 'stuttering' effect occurs when you have the same link text (when read aloud) as the
alt
text of images within the link. Consider removing the alt
text of the image where the link text already provides the context for the image. See WCAG2 HTML Technique H2.P861
SC 2.4.9: When using the
<area>
element, specify a short text alternative with the alt
attributeEnsure the
<area>
element alt
attribute value is displayed in response to attaining focus (including keyboard focus), and that this applies when images are loaded and not loaded. See WCAG2 HTML Technique H24.P871
SC 2.4.9: Link text is missing
Describe the purpose of a link by providing descriptive text as the content of the element. The description lets a user distinguish this link from other links in the Web page and helps the user determine whether to follow the link. The URL of the destination is generally not sufficiently descriptive. See WCAG2 HTML Technique H30.
W885
SC 2.4.9: Do not use the URL as link text
Describe the purpose of a link by providing descriptive text as the content of the
<a>
element. This description lets a user distinguish this link from other links in the Web page and helps the user determine whether to follow the link. The URL of the destination is generally not sufficiently descriptive. See WCAG2 HTML Technique H30.E922
SC 2.4.9: The link text TEXT is not descriptive
You should always provide a way of allowing users to know the destination from the link text alone. See WCAG2 Failure F84.
W861
SC 2.4.9: Is the
title
text deliberately empty?The
title
attribute is used to provide additional information to help clarify or further describe the purpose of a link, but it has been found to be empty. You may wish to check that the title text has not simply been forgotten. See WCAG2 HTML Technique H33.W869
SC 2.4.10: Use heading elements to convey structure
Many assistive technologies provide navigation using headings, including skipping navigational links. If your document has any structure you should use heading markup to convey the structure of the content. Even a single header will make it easier for users. See WCAG2 HTML Technique H69.
I861
SC 3.1.3/3.1.4/3.1.6: No spell check was selected
Performing a spell check will help correct any misspelt words which screen readers may mispronounce and confuse users. It can also be used to identify unusual words, acronyms and abbreviations which may not have been explained. See WCAG2 Guideline 3.1.
W920
SC 3.1.4: Add a
title
attribute to the element to describe itEnsure that
<abbr>
and <acronym>
elements have a title
attribute that describes the abbreviation/acronym. See WCAG2 HTML Technique H28.