Accessibility digest
| Page | Migration Policy Institute |
|---|---|
| URL | https://www.migrationpolicy.org/ |
| Requester | pool@jpdev.pro |
| Test date | 2023/11/20 |
| Score | 3590 |
| Tested by | Testaro, procedure ts37a |
| Scored by | Testilo, procedure tsp38 |
| Digested by | Testilo, procedure tdp38 |
| Derived from | Full report |
Introduction
How accessible is the Migration Policy Institute web page at https://www.migrationpolicy.org/?
This digest can help answer that question. Nine different tools (Alfa, ASLint, Axe, Equal Access, HTML CodeSniffer, Nu Html Checker, QualWeb, Testaro, and WAVE) tested the page to check its compliance with their accessibility rules. In all, the tools define about 915 rules, which are classified here into about 300 accessibility issues.
The results were interpreted to yield a score, with 0 being ideal. The score for this page was 3590, the sum of 660 for the count of issues, 2070 for specific issues, 650 for tool-by-tool ratings, 0 for the page preventing tools from running, 210 for browser warnings, and 0 for delayed page responses.
Issue summary
| Issue | WCAG | Score | Tools reporting the issue |
|---|---|---|---|
| text contrast improvable | 1.4.6 | 278 | alfa, aslint, axe, htmlcs |
| text contrast poor | 1.4.3 | 276 | alfa, axe, wave |
| focus indication poor | 2.4.7 | 148 | alfa, testaro |
| meta bans zoom | 1.4.4 | 124 | alfa, aslint, axe, qualWeb |
| fatal error | 4.1 | 124 | nuVal |
| ID not unique | 4.1.1 | 112 | alfa, aslint, htmlcs, qualWeb |
| link not named | 2.4.4 | 104 | alfa, aslint, axe, htmlcs, qualWeb, wave |
| links named identically | 2.4.4 | 96 | aslint, qualWeb |
| attribute invalid | 1.3.1 | 72 | nuVal |
| main missing | 1.3.6 | 62 | axe |
| content beyond landmarks | 1.3.6 | 56 | alfa, axe |
| image not named | 1.1.1 | 48 | alfa, aslint, axe, qualWeb |
| nav links not list | 1.3.1 | 44 | htmlcs, qualWeb |
| text contrast issues not testable | 1.4.3 | 44 | htmlcs |
| error reference invalid | 3.3.1 | 36 | qualWeb |
| title attribute redundant | 1.3.1 | 35 | wave |
| large visible-element count | 2.4 | 31 | testaro |
| control not named | 4.1.2 | 28 | alfa, axe, htmlcs, qualWeb, wave |
| image dubiously named | 1.1.1 | 28 | aslint, qualWeb |
| CSS bans rotation | 1.3.4 | 28 | aslint |
| text and image link not combined | 2.4.4 | 28 | wave |
| link indication poor | 1.3.3 | 24 | aslint |
| code invalid | 4.1 | 24 | nuVal |
| button not named | 4.1.2 | 16 | axe, htmlcs, wave |
| font small | 1.4 | 15 | aslint, wave |
| heading structure illogical | 1.3.1 | 14 | aslint, htmlcs |
| line height low | 1.4.8 | 12 | alfa, testaro |
| element closure invalid | 4.1.1 | 12 | nuVal |
| tab-opening link action possibly unstated | 3.2.5 | 10 | aslint, htmlcs, testaro |
| code obsolete | 4.1 | 9 | ibm, nuVal |
| skip method possibly missing or invalid | 2.4.1 | 8 | alfa |
| link name dubious | 2.4.4 | 8 | aslint, wave |
| link destination not URL | 1.3.1 | 8 | aslint |
| input not named | 4.1.2 | 8 | htmlcs |
| labeling risky | 3.3.2 | 7 | aslint |
| duplicate attribute | 4.1.1 | 7 | testaro |
| heading level skipped | 1.3.1 | 6 | alfa, axe, wave |
| negative text-indent | 4.1 | 6 | aslint |
| attribute obsolete | 4.1 | 6 | aslint, nuVal |
| element in head invalid | 4.1.1 | 6 | testaro |
| aria attribute missing | 4.1.2 | 4 | alfa, qualWeb |
| label referent ineligible | 1.3.1 | 4 | aslint, htmlcs |
| iframe not named | 4.1.2 | 4 | aslint, htmlcs |
| list unordered type dubious | 1.3.1 | 4 | htmlcs |
| link element invalid | 1.3.1 | 4 | htmlcs |
| label reference invalid | 1.3.1 | 4 | wave |
| visible label not in name | 2.5.3 | 3 | alfa, qualWeb |
| table headers missing | 1.3.1 | 3 | aslint |
| select not named | 4.1.2 | 3 | axe, htmlcs, wave |
| meta invalid | 1.3.1 | 3 | nuVal |
| table not marked as such | 1.3.1 | 3 | qualWeb |
| target small | 2.5.5 | 3 | testaro |
| link href missing | 1.3.1 | 2 | aslint |
| links dubiously share name | 2.4.4 | 2 | axe |
| image dubiously marked decorative | 1.1.1 | 2 | htmlcs |
| table misused | 1.3.1 | 2 | qualWeb, wave |
| cell headers possibly ambiguous | 1.3.1 | 2 | qualWeb |
| role redundant | 4.1.2 | 2 | testaro |
| image alt long | 1.1.1 | 2 | wave |
| title attribute empty | 1.3.1 | 1 | aslint |
| table caption missing | 1.3.1 | 1 | aslint, qualWeb |
| heading-like styles dubious | 1.3.1 | 1 | htmlcs |
| option groups possibly not marked | 1.3.1 | 1 | htmlcs |
| text distortion | 3.1.5 | 1 | testaro |
| noscript element possibly not equivalent | 4.1 | 1 | wave |
| all-capital text | 3.1.5 | 0 | aslint, testaro |
Itemized issues
The reported rule violations are itemized below, issue by issue. Additional details can be inspected in the full report.
Issue: text contrast improvable
Impact: Text is difficult to read
WCAG: 1.4.6
Score: 278
Violations of alfa rules
Rule r66
r66Description: Text contrast less than AAA requires
Count of instances: 72
Violations of aslint rules
Rule color_contrast_aaa
color_contrast_aaaDescription: Text contrast may be less than enhanced but the element is invisible
Count of instances: 268
Rule color_contrast_aaa7
Description: Text has contrast less than 7:1
Count of instances: 10
Violations of axe rules
Rule color-contrast-enhanced
color-contrast-enhancedDescription: Element has insufficient color contrast (Level AAA)
Count of instances: 4
Violations of htmlcs rules
Rule AAA.1_4_6.G17.Fail
AAA.1_4_6.G17.FailDescription: Text has insufficient contrast
Count of instances: 10
Issue: text contrast poor
Impact: Text is difficult to read
WCAG: 1.4.3
Score: 276
Violations of alfa rules
Rule r69
r69Description: Text outside widget has subminimum contrast
Count of instances: 66
Violations of axe rules
Rule color-contrast
color-contrastDescription: Element has insufficient color contrast
Count of instances: 69
Violations of wave rules
Rule contrast
contrastDescription: Very low contrast
Count of instances: 41
Issue: focus indication poor
Impact: Keyboard-only user cannot choose an item to operate
WCAG: 2.4.7
Score: 148
Violations of alfa rules
Rule r65
r65Description: Element in the sequential focus order has no visible focus
Count of instances: 37
Violations of testaro rules
Rule focInd
focIndDescription: Focused element displays a nonstandard or no focus indicator
Count of instances: 1
Issue: meta bans zoom
Impact: User cannot adjust the document size for readability
WCAG: 1.4.4
Score: 124
Violations of alfa rules
Rule r47
r47Description: Element restricts zooming
Count of instances: 1
Violations of aslint rules
Rule zoom_disabled
zoom_disabledDescription: Element specifies a minimum or maximum scale or prohibits zooming
Count of instances: 1
Violations of axe rules
Rule meta-viewport
meta-viewportDescription: Zooming and scaling are disabled
Count of instances: 1
Violations of qualWeb rules
Rule QW-ACT-R14
QW-ACT-R14Description: meta viewport prevents zoom
Count of instances: 1
Issue: fatal error
Impact: Document prevents testing for accessibility
WCAG: 4.1
Score: 124
Violations of nuVal rules
Rule Cannot recover after last error. Any further errors will be ignored.
Cannot recover after last error. Any further errors will be ignored.Description: Testing was interrupted by a fatal error
Count of instances: 1
Issue: ID not unique
Impact: User may be pointed to the wrong item
WCAG: 4.1.1
Score: 112
Violations of alfa rules
Rule r3
r3Description: Element id attribute value is not unique
Count of instances: 28
Violations of aslint rules
Rule duplicated_id_attribute
duplicated_id_attributeDescription: Element id attribute value is not unique
Count of instances: 28
Violations of htmlcs rules
Rule AAA.4_1_1.F77
AAA.4_1_1.F77Description: Duplicate id attribute value
Count of instances: 14
Violations of qualWeb rules
Rule QW-ACT-R18
QW-ACT-R18Description: id attribute value is not unique
Count of instances: 28
Issue: link not named
Impact: User cannot get help understanding what a link points to
WCAG: 2.4.4
Score: 104
Violations of alfa rules
Rule r11
r11Description: Link has no accessible name
Count of instances: 7
Violations of aslint rules
Rule empty_link_element
empty_link_elementDescription: Element has no visible and accessible name
Count of instances: 15
Rule img_empty_alt_in_link
Description: Element is an image in a link but has no text alternative
Count of instances: 2
Violations of axe rules
Rule link-name
link-nameDescription: Link has no discernible text
Count of instances: 7
Violations of htmlcs rules
Rule AAA.4_1_2.H91.A.Empty
AAA.4_1_2.H91.A.EmptyDescription: a element has an id attribute but no href attribute or text
Count of instances: 1
Rule AAA.1_1_1.H30.2
Description: img element is the only link content but has no text alternative
Count of instances: 8
Violations of qualWeb rules
Rule QW-ACT-R12
QW-ACT-R12Description: Link has no accessible name
Count of instances: 13
Rule QW-WCAG-T21
Description: Accessible name is not provided for an image which is the only content in a link
Count of instances: 13
Violations of wave rules
Rule alt_link_missing
alt_link_missingDescription: Linked image has no text alternative
Count of instances: 14
Issue: links named identically
Impact: User cannot get help differentiating links
WCAG: 2.4.4
Score: 96
Violations of aslint rules
Rule links_same_content_different_url
links_same_content_different_urlDescription: Links with the same text content have different destination URLs
Count of instances: 48
Violations of qualWeb rules
Rule QW-ACT-R9
QW-ACT-R9Description: Links with identical accessible names have different purposes
Count of instances: 40
Rule QW-ACT-R44
Description: Links with identical accessible names and context serve different purposes
Count of instances: 4
Issue: attribute invalid
Impact: Item behaves improperly
WCAG: 1.3.1
Score: 72
Violations of nuVal rules
Rule ^Attribute .+ not allowed here.*$
^Attribute .+ not allowed here.*$Description: Attribute not allowed here
Count of instances: 9
Rule ^Attribute .+ is not serializable as XML 1\.0.*$
Description: Attribute is invalidly nonserializable
Count of instances: 9
Issue: main missing
Impact: User cannot get help on how some of the document is organized
WCAG: 1.3.6
Score: 62
Violations of axe rules
Rule landmark-one-main
landmark-one-mainDescription: page has no main landmark
Count of instances: 1
Issue: content beyond landmarks
Impact: User cannot get help on how some of the document is organized
WCAG: 1.3.6
Score: 56
Violations of alfa rules
Rule r57
r57Description: Perceivable text content is not included in any landmark
Count of instances: 56
Violations of axe rules
Rule region
regionDescription: Some page content is not contained by landmarks
Count of instances: 7
Issue: image not named
Impact: User cannot get help to know what is in an image
WCAG: 1.1.1
Score: 48
Violations of alfa rules
Rule r2
r2Description: Image has no accessible name
Count of instances: 6
Violations of aslint rules
Rule missing_alt_attribute
missing_alt_attributeDescription: Image has no alt attribute
Count of instances: 12
Violations of axe rules
Rule image-alt
image-altDescription: Image has no text alternative
Count of instances: 6
Violations of qualWeb rules
Rule QW-ACT-R17
QW-ACT-R17Description: Image has no accessible name
Count of instances: 12
Issue: nav links not list
Impact: User cannot get help recognizing a list of navigation links
WCAG: 1.3.1
Score: 44
Violations of htmlcs rules
Rule AAA.1_3_1.H48
AAA.1_3_1.H48Description: Navigation links are not coded as a list
Count of instances: 1
Violations of qualWeb rules
Rule QW-WCAG-T32
QW-WCAG-T32Description: ol, ul or dl is not used for a list or group of links
Count of instances: 22
Issue: text contrast issues not testable
Impact: Text may be difficult to read
WCAG: 1.4.3
Score: 44
Violations of htmlcs rules
Rule AAA.1_4_6.G17.Abs
AAA.1_4_6.G17.AbsDescription: Contrast between the absolutely positioned text and its background may be less than 7:1
Count of instances: 3
Rule AAA.1_4_6.G17.BgImage
Description: Contrast between the text and its background image may be less than 7:1
Count of instances: 35
Rule AAA.1_4_6.G18.Abs
Description: Contrast between the absolutely positioned text and its background may be less than 4.5:1
Count of instances: 1
Rule AAA.1_4_6.G18.BgImage
Description: Contrast between the text and the background image may be less than 4.5:1
Count of instances: 5
Issue: error reference invalid
Impact: User cannot correct a form error
WCAG: 3.3.1
Score: 36
Violations of qualWeb rules
Rule QW-ACT-R41
QW-ACT-R41Description: Error message describes no invalid form field value
Count of instances: 9
Issue: title attribute redundant
Impact: Helper repeats the explanation of an item
WCAG: 1.3.1
Score: 35
Violations of wave rules
Rule title_redundant
title_redundantDescription: Title attribute text is the same as the text or alternative text
Count of instances: 35
Issue: large visible-element count
Impact: User cannot easily find items in the document
WCAG: 2.4
Score: 31
Violations of testaro rules
Rule bulk
bulkDescription: Page contains many visible elements
Count of instances: 1
Issue: control not named
Impact: User cannot get help on how to operate a form item
WCAG: 4.1.2
Score: 28
Violations of alfa rules
Rule r8
r8Description: Form field has no accessible name
Count of instances: 2
Violations of axe rules
Rule label
labelDescription: Form element has no label
Count of instances: 1
Violations of htmlcs rules
Rule AAA.1_3_1.F68
AAA.1_3_1.F68Description: Form control has no label
Count of instances: 3
Violations of qualWeb rules
Rule QW-ACT-R16
QW-ACT-R16Description: Form control has no accessible name
Count of instances: 7
Violations of wave rules
Rule label_missing
label_missingDescription: form element has no label
Count of instances: 6
Issue: image dubiously named
Impact: Helper may describe an image inadequately
WCAG: 1.1.1
Score: 28
Violations of aslint rules
Rule alt_color_convey_information
alt_color_convey_informationDescription: Text alternative may fail to give information provided by colors
Count of instances: 1
Violations of qualWeb rules
Rule QW-WCAG-T8
QW-WCAG-T8Description: Text alternative is not an alternative
Count of instances: 28
Issue: CSS bans rotation
Impact: User must read sideways after rotating a device
WCAG: 1.3.4
Score: 28
Violations of aslint rules
Rule orientation
orientationDescription: CSS media query specifies an orientation
Count of instances: 7
Issue: text and image link not combined
Impact: Keyboard-only user expends extra effort to skip a link
WCAG: 2.4.4
Score: 28
Violations of wave rules
Rule link_redundant
link_redundantDescription: Adjacent links go to the same URL
Count of instances: 14
Issue: link indication poor
Impact: User cannot differentiate a link from plain text
WCAG: 1.3.3
Score: 24
Violations of aslint rules
Rule links_not_visually_evident_without_color_vision
links_not_visually_evident_without_color_visionDescription: Element is a link, but its style properties do not differentiate it from its parent
Count of instances: 12
Issue: code invalid
Impact: Invalid code in the document may prevent a helper from working
WCAG: 4.1
Score: 24
Violations of nuVal rules
Rule Saw
Saw