Home Page Check Accessibility, HTML, CSS, Broken Links & Spelling

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 empty
When 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 text
When 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 alternative
When 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 here
Although 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 name
The 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 attribute
If 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 misplaced
For 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.
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 attribute
Ensure 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, 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.
E893
SC 1.1.1/4.1.2: Do not use images as frame targets, always point src at web pages
Rather 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 accessibility
The 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 accessibility
The 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 same
Making the <caption> and summary the same is unnecessarily confusing. See WCAG2 HTML Technique H39.
E876
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 attribute
The scope attribute must have one of the following values: auto, 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 attributes
This 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 attribute
References 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 document
Each 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 document
One 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 idea
Using <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 form
Using 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 checkboxes
Because 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 group
The 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 accessible
Consider an accessible alternative. See Understanding 2.1.1.
E9001
SC 2.1.1: An <a> without an href cannot receive keyboard focus
If 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 focus
If 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* attribute
You 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 refresh
Pages 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 instead
Using <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 instead
With 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 navigation
Title 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 it
You 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 it
The <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 incorrect
When 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 text
The 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 text
The 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 value
The 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 value
The 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 document
You 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 attribute
You 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 value
When 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 operation
Using 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 operation
Using 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 control
Associate 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 here
Some 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 element
Elements 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 element
Using 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 element
Using 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 attributes
When 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.
W889
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 role
The 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 incorrect
The 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 in
Using 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 attributes
Accessibility 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 attributes
Accessibility 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 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.
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 accessible
Consider 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 refresh
Pages 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 attribute
Ensure 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, 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.
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 it
Ensure that <abbr> and <acronym> elements have a title attribute that describes the abbreviation/acronym. See WCAG2 HTML Technique H28.