The WebAIM Million - 2021
An annual accessibility analysis of the top 1,000,000 home pages
Introduction
In February of 2019, 2020, and 2021 WebAIM conducted an accessibility evaluation of the home pages for the top 1,000,000 web sites. The evaluation was conducted using the WAVE stand-alone API (with additional tools to collect site technology and sector parameters). The results provide an overview of and insight into the current state of web accessibility for individuals with disabilities and trends over time.
The most recent WebAIM Analysis report is now available. Results below are the most recent available—currently from February 2021—with comparisons to, and trends from, earlier analyses.
The Sample
Site Lookup
How did your home page rank in our study? Enter a web site domain below (minus "www.") to view details.
The million home page list was derived from various sources, primarily the Majestic Millions list. Due to different methods of determining "top" sites, this list was supplemented with additional top pages from the Open PageRank Initiative and Alexa Top Sites. Sites without home pages, pages that returned errors (404, etc.), or pages with fewer than 10 HTML elements were not included.
Method
The WAVE accessibility engine was used to analyze the rendered DOM of all pages after scripting and styles were applied. WAVE uses heuristics and logic to detect end-user accessibility barriers and Web Content Accessibility Guidelines (WCAG) conformance failures. All automated tools, including WAVE, have limitations—not all conformance failures can be automatically detected. Absence of detected errors does not indicate that a site is accessible or compliant. Still, the data presented in this report provide a meaningful representation of the state of web inaccessibility.
Errors, Page Complexity, and Error Density
Across the one million home pages, 51,379,694 distinct accessibility errors were detected—an average of 51.4 errors per page. The number of errors decreased by 15.6% between February 2020 (60.9 errors) and February 2021 (51.4 errors)! "Errors" are WAVE-detected accessibility barriers having notable end user impact, and which have a very high likelihood of being WCAG 2 Level A/AA conformance failures.
Home page complexity increased slightly in 12 months, from an average of 864 elements per page to 887 elements. 5.8% of all home page elements had a detected accessibility error. Users with disabilities would expect to encounter errors on 1 in every 17 home page elements with which they engage.
Error density (number of errors divided by number of page elements) is provided in the site lookup, but is an unreliable metric of site accessibility. A significant number of page elements (<div>
and <span>
elements, for example) may result in a lower error density (suggesting better accessibility), when in fact many new accessibility errors may have also been introduced. This report focuses on average number of detected errors—likely end user barriers—present as opposed to error densities (how diluted those errors are within page elements).
WCAG Conformance
97.4% of home pages had detected WCAG 2 failures! This was down slightly from 98.1% in February 2020. These are only automatically detected errors that align with WCAG conformance failures with a high level of reliability. Because automatic testing cannot detect all possible WCAG failure types, this means that the actual WCAG 2 A/AA conformance level was certainly much lower.
While the WCAG conformance rate is very low, 21.9% of pages had 5 or fewer detected errors and 29.9% had 10 or fewer. As noted below, most conformance failures fall into just a few categories.
WCAG Failure Type | % of home pages in February 2021 | % of home pages in February 2020 | % of home pages in February 2019 |
---|---|---|---|
Low contrast text | 86.4% | 86.3% | 85.3% |
Missing alternative text for images | 60.6% | 66.0% | 68.0% |
Missing form input labels | 54.4% | 53.8% | 52.8% |
Empty links | 51.3% | 59.9% | 58.1% |
Missing document language | 28.9% | 28.0% | 33.1% |
Empty buttons | 26.9% | 28.7% | 25.0% |
Over the course of three years, home pages with low contrast text, missing input labels, and empty buttons have generally increased, whereas home pages with missing alternative text, empty links, and missing document language have generally decreased.
96.7% of all errors detected fall into these six categories. Addressing just these few types of issues would significantly improve accessibility across the web.
Low Contrast Text
Low contrast text, below the WCAG 2 AA thresholds, was found on 86.4% of home pages. This was the most commonly-detected accessibility issue. On average, home pages had 31 distinct instances of low-contrast text.
Images and Alternative Text
There were 37,948,510 images in the sample, or 37.9 images per home page on average. The number of images decreased slightly since 2020. 26% of all home page images (10 per page on average) had missing alternative text (not counting alt=""
). Nearly half of the images missing alternative text were linked images—resulting in links that were not descriptive.
9.6% of images that were assigned alternative text had questionable or repetitive alternative text—such as alt="image", "graphic", "blank", a file name, etc., or alternative text identical to adjacent text or alternative text.
These data show that one can expect over one third of the images on the web to have missing, questionable, or repetitive alternative text. This number, however, is decreasing as the prevalence of alternative text is slowly increasing over time.
Longdesc
Despite being removed from HTML5 over a decade ago, 2,009 home pages had a longdesc
attribute present, an increase from 1,885 in 2020. Half of the 16,778 longdesc
attributes encountered had invalid values, such as an empty value, an invalid URL, an image file name, etc.
Form Labeling
45% of the 4.4 million form inputs identified were not properly labeled (either via <label>
, aria-label
, or aria-labelledby
). This is a significant improvement from 55% in 2020 and 59% in 2019. Despite this improvement, nearly half of form inputs do not have associated label texts.
Headings
Nearly 21.5 million headings were detected (over 21 on average per page). The number (and prevalence) of heading levels were:
- 1.6 million
<h1>
headings (7.4%) - 6.5 million
<h2>
headings (30.1%) - 7.5 million
<h3>
headings (35.0%) - 3.6 million
<h4>
headings (17.5%) - 1.5 million
<h5>
headings (6.9%) - .7 million
<h6>
headings (3.2%)
18.4% of home pages had more than one <h1>
—a decrease from 20.5% in 2020. The prevalence of <h3>
, <h4>
, <h5>
, and <h6>
headings all increased.
There were 1,017,026 instances of skipped heading levels (e.g., jumping from <h2>
to <h4>
) and 1 in every 21 headings was improperly structured. Skipped headings were present on 38.4% of all pages (down from 39.1% in 2020), and 10.6% of pages had no headings present at all (down from 12.4% in 2020).
These data all suggest that headings are being used more frequently and more appropriately over time. This is important because headings are the primary mechanism used by screen reader users to navigate content.
Regions
69.1% of home pages had at least one region (or ARIA landmark) defined—an increase from 68.9% in 2020 and 62.4% in 2019. A <main>
element or main landmark was present on 30.1% of home pages, up from 27.8% in 2020 and 23.5% in 2019. 17.6% of home pages had a "search" landmark.
96% of home pages with a main region/landmark had only one instance (which is a correct implementation). Pages with a navigation region/landmark present averaged 2.3 of them per page.
ARIA
47,883,732 ARIA attributes were detected—nearly 48 per page on average! ARIA code usage increased 25% in just one year.
68.1% of the one million home pages used ARIA (excluding ARIA landmark roles)—an increase from 64.6% in 2020 and 60.1% in 2019. Home pages with ARIA present averaged 41% more detected errors than those without ARIA, meaning one would expect to encounter an additional 24 potential barriers on home pages with ARIA present. This number, however, decreased from 60% in 2020.
ARIA correlated to higher detected errors. The more ARIA attributes that were present, the more detected accessibility errors could be expected. This does not necessarily mean that ARIA introduced these errors (these pages are more complex), but pages typically had more errors when ARIA was present.
Home pages averaged 7.6 aria-label
or aria-labelledby
attributes (an increase from 5.6 in 2020). 1 out of every 15 aria-labelledby
and aria-describedby
attributes had broken references (meaning the element referenced by the ARIA attribute did not exist on the page).
7% of home pages (1 in 14) had an ARIA menu (role="menu"
), but an alarming 60.1% of ARIA menus (an increase from 53.7% in 2020) introduced accessibility barriers due to the lack of necessary ARIA menu markup and interactions.
Home pages also averaged 8.9 aria-hidden="true"
attributes (up from 6.6 in 2020) and 2.2 role="button"
attributes (up from 1.3) per page. Over 14.3 million (14.3 per page on average) instances of tabindex=0
or tabindex=1
were present (up 43% from 2020).
Links
22% of pages had ambiguous link text, such as "click here", "more", "continue", etc. These pages had 5.9 instances of ambiguous links on average resulting in nearly 1.3 million ambiguous links in the sample.
Skip Links
10.3% of home pages had a "skip" link present (a slight decrease from 10.8% in 2020). However, 11.1% of "skip" links were broken—either they were hidden in a way that made them inaccessible or the link target was not present in the page.
Doctypes
79.1% of home pages had a valid HTML5 doctype—a notable increase from 74.1% in 2019, but a small decrease from 80% in 2020. Pages with a valid HTML5 doctype had nearly double the page elements (average of 987 vs. 508) and 35% more errors (average of 54.3 vs. 40.2) than those with other doctypes. 707 unique doctypes (most of these, obviously, being invalid) were encountered in the million-page sample.
Site Categories
We're grateful for the support of webshrinker.com in providing us the site category data. Their support makes this valuable information available.
The home pages were categorized based on content into IAB Content Taxonomy categories. The table below shows the number of home pages in each category (some sites may be in more than one category), average number of errors in that category, and the percent difference in errors for that category and the average of 51.4 errors for the entire million-page sample. In other words, the percentage difference is how much better or worse that category is than the average home page.
Category | # of home pages | # of errors (difference) |
---|---|---|
Business | 88,096 | 45.8 (−10.9%) |
Food and Drink | 30,722 | 46.8 (−8.8%) |
Law, Government, and Politics | 23,451 | 46.9 (−8.7%) |
Technology and Computing | 154,378 | 47.4 (−7.8%) |
Health & Fitness | 53,886 | 48.5 (−5.6%) |
Science | 6,937 | 48.7 (−5.2%) |
Careers | 11,940 | 50.1 (−2.5%) |
Personal Finance | 41,740 | 50.6 (−1.5%) |
Social Media & Society | 22,875 | 50.7 (−1.3%) |
Education | 49,474 | 50.8 (−1.2%) |
Religion and Spirituality | 9,766 | 51.4 (0.1%) |
Home and Garden | 31,705 | 51.5 (0.2%) |
Family and Parenting | 6,460 | 53.0 (3.1%) |
Automotive | 18,675 | 57.1 (11.2%) |
Arts and Entertainment | 40,505 | 57.3 (11.4%) |
Pets | 7,725 | 57.3 (11.5%) |
Travel | 40,385 | 59.4 (15.6%) |
Hobbies and Interests | 84,718 | 61.7 (20.1%) |
Style and Fashion | 20,086 | 63.2 (23.1%) |
Sports | 37,751 | 64.8 (26.0%) |
Real Estate | 17,577 | 71.4 (38.9%) |
News/Weather/Information | 72,007 | 73.5 (43.1%) |
Shopping | 40,706 | 75.2 (46.4%) |
Adult Content | 19,079 | 83.1 (61.7%) |
There were notable differences in accessibility errors for sites in different categories. Home pages in the Food & Drink category were most improved since 2020 with errors reduced from 66.1 to 46.8 errors on average. This improvement may be at least partially attributed to the significant increase in litigation regarding web accessibility in this sector. Shopping sites, which were also highly subject to accessibility complaints and lawsuits, were greatly improved from 90.5 errors to 75.2 errors on average, yet this category remains among the least accessible.
TLDs
793 unique top-level domains (.com, .tv, .fashion, etc.) were represented in the million pages analyzed. Home pages with .com (501,741), .org (73,959), and .net (44,813) were the most common.
The table below shows the most common TLDs with page counts, average number of errors, and difference between those errors and the average of 51.4 errors for the entire million-page sample.
Top-level Domain | # of home pages | # of errors (difference) |
---|---|---|
tk | 5,903 | 17.7 (−65.6%) |
us | 5,484 | 35.7 (−30.5%) |
ca | 6,858 | 39.4 (−22.9%) |
org | 73,959 | 40.4 (−21.4%) |
uk | 20,213 | 44.1 (−14.2%) |
de | 28,488 | 44.2 (−14.0%) |
io | 5,422 | 44.3 (−13.8%) |
net | 44,813 | 45.9 (−10.7%) |
info | 8,038 | 45.9 (−10.7%) |
co | 6,937 | 48.2 (−6.2%) |
jp | 14,095 | 48.6 (−5.4%) |
nl | 11,542 | 51.0 (−50.7%) |
com | 501,741 | 51.2 (−0.3%) |
au | 8,275 | 51.4 (0%) |
fr | 8,810 | 56.3 (+9.6%) |
it | 8,579 | 58.7 (+14.2%) |
in | 9,728 | 58.8 (+14.4%) |
pl | 7,685 | 58.8 (+14.4%) |
br | 8,033 | 60.5 (+17.8%) |
ru | 33,074 | 77.0 (+49.9%) |
cn | 10,932 | 80.5 (+56.7%) |
This shows notable differences between TLDs. Home pages with .gov (22.5 errors), .edu (30.0 errors), and .us (35.7 errors), which are all affiliated with U.S.-based entities, had among the lowest number of average accessibility errors of all common (n>2000) TLDs.
Languages
72% of pages specified a document language. Pages without a language defined had significantly fewer errors on average than pages with a language defined.
This table shows the specified page language for the most common languages, number of pages in the sample, average number of errors, and difference in errors from the overall average.
Specified Language | # of home pages | # of errors (difference) |
---|---|---|
No language specified | 280,097 | 44.5 (−13.4%) |
English | 488,349 | 47.1 (−8.3%) |
Dutch | 10,982 | 51.3 (−0.2%) |
Japanese | 19,943 | 52.8 (+2.8%) |
German | 26,225 | 56.7 (+10.4%) |
French | 19,780 | 60.3 (+17.4%) |
Spanish | 23,243 | 66.7 (+29.8%) |
Chinese | 11,560 | 79.6 (+54.9%) |
Russian | 30,198 | 82.1 (+59.8%) |
As with TLDs, there are significant differences in accessibility of pages in various languages, with Russian, Chinese, and Spanish pages being much worse than the average. Russian and Chinese pages had nearly twice as many detectable errors than pages in English.
Technologies
Data regarding over 1000 different types of technologies present on the one million home pages were collected and analyzed. Technologies detected on more than 5,000 home pages are listed below, ordered from "best" to "worst". Note that correspondence of additional errors with a technology cannot automatically be attributed to that technology.
Content Management Systems
CMS | # (and %) of home pages | Avg. # of errors | % difference |
---|---|---|---|
Squarespace | 5,772 (0.6%) | 19.7 | −61.6% |
Typo3 | 6,098 (0.6%) | 49.9 | −2.9% |
Drupal | 27,110 (2.7%) | 51.0 | −0.7% |
Elementor | 30,328 (3.0%) | 53.6 | +4.3% |
WordPress | 310,936 (31.1%) | 56/6 | +10.1% |
Rocket | 22,543 (2.3%) | 59.4 | +15.5% |
1CBitrix | 7,630 (0.8%) | 90.7 | +76.6% |
There was a wide diversity in the impact that the CMS choice appeared to have on accessibility.
JavaScript Frameworks
Framework | # (and %) of home pages | Avg. # of errors | % difference |
---|---|---|---|
React | 26,773 (2.7%) | 50.4 | −1.9% |
MooTools | 8,270 (0.8%) | 54.8 | +6.7% |
GSAP | 6,612 (0.7%) | 57.9 | +12.7% |
RequireJS | 13,621 (1.4%) | 60.7 | +18.1% |
Prototype | 5,313 (0.5%) | 62.6 | +21.8% |
Backbone.js | 6,003 (0.6%) | 63.9 | +24.4% |
Angular | 5,775 (0.6%) | 64.9 | +26.4% |
Vue.js | 18,358 (1.8%) | 67.3 | +31.1% |
Except for React (which saw notable decreases in detected errors over the last year), the adoption of any of these frameworks corresponded with more accessibility errors than the average home page. This does not necessarily mean that the frameworks caused these errors, but home pages with these frameworks had more errors than on average.
JavaScript Libraries
Library | # (and %) of home pages | Avg. # of errors | % difference |
---|---|---|---|
Lodash | 20,964 (2.1%) | 57.4 | +11.6% |
Modernizr | 76,072 (7.6%) | 57.8 | +12.5% |
jQuery Migrate | 203,527 (20.4%) | 58.5 | +13.9% |
Lightbox | 41,883 (4.2%) | 60.3 | +17.4% |
jQuery | 624,415 (62.4%) | 61.6 | +19.9% |
Slick | 76,858 (7.7%) | 63.8 | +24.3% |
prettyPhoto | 19,425 (1.9%) | 66.8 | +30.0% |
jQueryUI | 72,798 (7.3%) | 69.7 | +35.7% |
Moment.js | 18,359 (1.8%) | 71.3 | +38.8% |
FancyBox | 20,473 (2.0%) | 73.4 | +42.9% |
Underscore.js | 36,247 (3.6%) | 74.0 | +44.1% |
Select2 | 9,567 (1.0%) | 79.0 | +53.8% |
The presence of any of these JavaScript frameworks aligned with an increase in detected accessibility errors. 62.4% the top one million home pages utilize jQuery. Home pages with jQuery averaged 10.2 more errors than those without.
Web Frameworks
Web Framework | # (and %) of home pages | Avg. # of errors | % difference |
---|---|---|---|
Ruby on Rails | 5,144 (0.5%) | 40.7 | −20.7% |
MicrosoftASP.net | 58,361 (5.8%) | 56.2 | +9.4% |
ZURB Foundation | 16,654 (1.7%) | 57.4 | +11.8% |
Bootstrap | 264,238 (26.4%) | 59.1 | +15.1% |
Animate.css | 58,263 (5.8%) | 66.6 | +29.7% |
Home pages in the sample that utilize the popular Bootstrap framework had 8.5 more accessibility errors on average than those that did not. We can't know from these data if Bootstrap introduced these errors, but there was a correspondence of increased errors when Bootstrap was present.
Ecommerce Platforms
Platform | # (and %) of home pages | Avg. # of errors | % difference |
---|---|---|---|
Shopify | 14,025 (1.4%) | 54.1 | +5.0% |
Woocommerce | 32,127 (3.2%) | 67.0 | +30.4% |
Magento | 5,577 (.6%) | 79.7 | +55.1% |
The most popular ecommerce systems all corresponded with increased accessibility errors.
Advertisement Networks
Ad Network | # (and %) of home pages | Avg. # of errors | % difference |
---|---|---|---|
AdRoll | 8,547 (0.9%) | 52.9 | +3.0% |
AppNexus | 18,484 (1.8%) | 66.8 | +29.9% |
Doubleclick | 32,181 (3.2%) | 78.4 | +52.5% |
Google AdSense | 85,505 (8.6%) | 78.7 | +53.2% |
Criteo | 8,817 (0.9%) | 99.1 | +92.8% |
Yandex | 5,297 (0.5%) | 105.6 | +105.6% |
Pages that utilized any of these popular ad systems had more errors on average than those that did not. The data suggest that ads were among the strongest harbingers of accessibility errors. Home pages that utilize the common Google AdSense system had 27 more errors on average than other pages.
Other Technologies
Other common technologies also correlated to more errors. 7.9% of pages had ReCAPTCHA and averaged 10.8 more errors than those without. 39.5% of pages had Google Fonts and averaged 6.1 more errors, 3.4% of pages had Google Maps and averaged 11.6 more errors, and 47% of pages had PHP and averaged 5.9 more errors.
Fun Facts
Here are some fun facts regarding this research:
- With 4 analyses of over one million pages each, the WebAIM Million database is approaching two billion data points.
- Despite being 2021, 14,501 home pages had
<marquee>
and 341 home pages had blinking content (<blink>
or CSStext-decoration:blink
). - 1,533,402 tables were observed, down from 1,876,456 in 2020. Only 140,793 (9.2%) of the tables had valid data table markup.
- The most errors detected on a single home page was 25,361!
Conclusion
While 2021 saw small decreases in the number of detected accessibility errors and WCAG conformance failures, significant work remains to be done to make the web accessible to everyone. WebAIM hopes that this report will help influence improved accessibility.