Key Findings
- Average image alt text coverage is just 59.2%. While 56 sites (18.5%) achieve 100% coverage, 11 sites have zero alt text on any image -- leaving screen reader users with no description of visual content.
- Only 30% of law firm websites include a skip navigation link -- one of the simplest and most impactful WCAG requirements (SC 2.4.1). Keyboard-only users on the remaining 70% must tab through every navigation link on every page load.
- 46.2% of sites skip heading levels, and 21.1% have no H1 element at all. Only 69% follow the correct pattern of a single H1 per page. Broken heading hierarchy undermines both accessibility and SEO.
- Form label association is a mixed picture: of the 199 sites with forms, 120 (60.3%) have every input properly labeled. But the average labeling rate is 76.2%, meaning roughly one in four form inputs across the industry lacks a programmatic label.
- The lang attribute is nearly universal at 98%, and generic link text ("click here," "read more") is rare at just 5.6% of sites. These are bright spots in an otherwise uneven landscape.
About This Research
Web accessibility is not optional for law firms. Under the Americans with Disabilities Act, websites are increasingly treated as places of public accommodation, and courts have allowed lawsuits to proceed against businesses with inaccessible websites. Law firms face a particular irony: the same industry that litigates ADA compliance for clients often fails to meet basic accessibility standards on its own website.
Beyond legal risk, inaccessible websites exclude potential clients. Roughly 1 in 4 adults in the United States has some form of disability. Missing alt text means a blind user cannot understand your practice area images. Unlabeled form inputs mean a screen reader user cannot fill out your contact form. No skip link means a keyboard-only user must tab through 30+ navigation links before reaching your content.
We wanted to quantify the gap. This study audits the homepage source code of 303 law firm websites across 25 high-growth U.S. markets, measuring compliance with core WCAG 2.1 success criteria that can be evaluated through static HTML analysis alone.
Methodology
We collected the HTML source code of 303 law firm homepages gathered from Google organic search results across 25 markets and 2 practice areas. For each page, we ran automated checks against six WCAG-related dimensions:
- Image alt text (SC 1.1.1): Counted total images, images with alt text, images with empty alt (decorative), and images missing alt entirely. Calculated coverage as the percentage of images with any alt attribute (including empty).
- Form label association (SC 1.3.1, 4.1.2): Identified all visible form inputs (text, email, tel, textarea, select) and checked whether each was associated with a label via <label for="">, aria-label, aria-labelledby, or wrapping <label> element.
- Heading hierarchy (SC 1.3.1): Parsed all heading elements (H1-H6) to check for a single H1, correct nesting (no skipped levels like H2 to H4), and overall heading count.
- Skip navigation link (SC 2.4.1): Checked for the presence of a skip link (an anchor near the top of the page that jumps to main content).
- Language attribute (SC 3.1.1): Verified the presence of a lang attribute on the <html> element.
- ARIA usage: Counted ARIA roles and attributes to measure the extent of explicit accessibility markup.
All analysis was performed on raw HTML source code, not the rendered DOM. This means we did not evaluate criteria that require JavaScript execution, computed styles, or user interaction -- such as color contrast, focus management, or keyboard navigation. Our results represent the accessibility floor: what is baked into the HTML before any scripts run.
The Numbers at a Glance
Image Alt Text
WCAG Success Criterion 1.1.1 requires that all non-decorative images have text alternatives. For law firm websites, this means every staff photo, office image, practice area graphic, and logo should have descriptive alt text. Decorative images should have an empty alt attribute (alt="") so screen readers skip them entirely.
Across 303 sites, the average alt text coverage rate is 59.2%. That means roughly 4 in 10 images on the typical law firm homepage lack any alt attribute at all.
The distribution is bimodal. At the top end, 56 sites (18.5%) achieve 100% alt text coverage -- every image has an alt attribute. At the bottom, 11 sites (3.6%) have 0% coverage, meaning not a single image on the page includes alt text. The majority of sites fall somewhere in between, with partial coverage that typically reflects a mix of properly tagged hero images alongside untagged thumbnails, icons, or background elements rendered as <img> tags.
For a law firm, the most common offenders are staff headshots without names in alt text, decorative separator images missing empty alt attributes, and third-party widget images (chat bubbles, badge icons) injected without accessibility markup.
Form Label Association
Contact forms are the conversion engine of a law firm website. If a screen reader user cannot identify which field is "Name," "Email," or "Phone," they cannot submit an inquiry. WCAG requires that every form input be programmatically associated with a label (SC 1.3.1 and 4.1.2).
Of the 303 sites analyzed, 199 (65.7%) have at least one visible form on their homepage. Among those 199 sites with forms:
- 120 sites (60.3%) have every input properly labeled. These sites use <label for="">, aria-label, aria-labelledby, or wrapping <label> elements correctly.
- The average labeling rate is 76.2%. Across all form inputs on all 199 sites, roughly three-quarters are properly associated with labels.
- 79 sites (39.7%) have at least one unlabeled input. The most common failure is placeholder text used as the only label -- visually present but invisible to assistive technology.
The pattern is clear: firms that use a proper form builder or framework tend to get labels right automatically. Firms with custom-coded forms or older templates are more likely to rely on placeholder text alone, which does not satisfy WCAG requirements.
Heading Hierarchy
Proper heading structure serves two audiences: screen reader users who navigate by headings to scan page content, and search engines that use heading hierarchy to understand page structure. WCAG SC 1.3.1 requires that the structure of content be programmatically determinable.
The correct pattern is simple: one H1 per page (the page title), followed by H2s for major sections, H3s for subsections, and so on without skipping levels. Here is how 303 law firm homepages performed:
| Heading Pattern | Sites | Percentage |
|---|---|---|
| Single H1 (correct) | 209 | 69% |
| No H1 at all | 64 | 21.1% |
| Multiple H1s | 30 | 9.9% |
While 69% of sites correctly use a single H1, the remaining 31% have fundamental structural issues. Having no H1 at all -- which 21.1% of sites exhibit -- means the page lacks a clear programmatic title. Multiple H1s (9.9%) dilute the primary heading and confuse both screen readers and search crawlers.
Heading level skipping compounds the problem. 46.2% of all sites jump from one heading level to a non-sequential level (for example, H2 directly to H4, skipping H3). This breaks the outline structure that assistive technology uses to help users navigate. The average law firm homepage contains 23 heading elements, so a broken hierarchy affects a significant amount of page content.
Navigation Accessibility
Skip navigation links
A skip navigation link is a hidden (or visually hidden) anchor at the top of the page that allows keyboard users to bypass the main navigation and jump directly to page content. It is one of the simplest accessibility features to implement -- a single anchor tag -- and is explicitly required by WCAG SC 2.4.1 ("A mechanism is available to bypass blocks of content that are repeated on multiple Web pages").
Only 91 of 303 sites (30%) include a skip navigation link. The remaining 70% force keyboard-only users to tab through every navigation item, dropdown, and utility link on every single page load before reaching the main content. On a typical law firm site with 20-40 navigation links, this means 20-40 extra tab presses on every page.
ARIA landmarks and roles
ARIA (Accessible Rich Internet Applications) attributes provide additional semantic information to assistive technology. While native HTML5 landmarks (main, nav, header, footer) are preferred, ARIA roles fill gaps where HTML semantics are insufficient.
79.5% of sites use at least one ARIA role. The average site includes 30.7 ARIA role attributes and 32.8 total ARIA attributes. However, the mere presence of ARIA does not guarantee correct usage -- misapplied ARIA can actually make accessibility worse.
The most common ARIA roles found across the 303 sites:
| ARIA Role | Sites Using | Percentage |
|---|---|---|
| button | 88 | 29% |
| main | 71 | 23.4% |
| presentation | 59 | 19.5% |
| menu | 48 | 15.8% |
| menuitem | 44 | 14.5% |
| navigation | 43 | 14.2% |
| dialog | 37 | 12.2% |
| img | 34 | 11.2% |
| menubar | 33 | 10.9% |
| search | 30 | 9.9% |
The role="button" is the most common (29%), often applied to non-button elements that function as buttons. The role="main" landmark appears on only 23.4% of sites -- meaning over three-quarters of sites do not explicitly mark their main content region, which is a missed opportunity for screen reader navigation. The role="presentation" at 19.5% indicates sites stripping semantic meaning from elements (typically used on decorative tables or layout wrappers).
Link text quality
Generic link text like "click here," "read more," or "learn more" fails WCAG SC 2.4.4, which requires that the purpose of each link be determinable from the link text alone. Screen reader users who navigate by tabbing through links hear only the link text, so "click here" in isolation is meaningless.
This is one area where law firm websites perform well. Only 5.6% of sites contain any generic link text, with an average generic link rate of just 0.7% across all sampled links. The legal industry's tendency toward descriptive navigation labels ("Schedule a Free Consultation," "View Our Practice Areas") naturally produces accessible link text.
Limitations
- Source code only: We analyzed raw HTML, not the rendered DOM after JavaScript execution. Sites that build accessibility features dynamically (via React, Angular, or accessibility overlay widgets) may have better runtime accessibility than our source-level analysis reflects.
- Homepage only: We tested only the homepage of each site. Interior pages (practice area pages, attorney bios, blog posts) may have different accessibility characteristics.
- Automated checks only: Automated testing catches roughly 30-40% of WCAG issues. Manual testing is required to evaluate color contrast, keyboard navigation, focus order, screen reader compatibility, and meaningful alt text quality.
- Point-in-time snapshot: All data was collected in a single pass. Sites may have been updated since the audit.
- Alt text quality not assessed: We measured whether alt text exists, not whether it is meaningful. An image with alt="image" technically has alt text but provides no useful information to screen reader users.
- ARIA correctness not evaluated: We counted ARIA usage but did not validate whether roles and attributes were correctly applied. Incorrect ARIA can be worse than no ARIA.
Full Methodology Details
Data collection
Homepage HTML was collected from 303 law firm websites identified through Google organic search results across 25 high-growth U.S. markets and 2 practice areas (personal injury and family law). Each site's raw HTML source was fetched and stored for analysis.
Image alt text analysis
All <img> elements were extracted from each page. For each image, we recorded: total count, images with non-empty alt attributes, images with empty alt attributes (alt=""), and images with no alt attribute at all. Coverage percentage is calculated as (images with any alt attribute / total images) * 100.
Form label analysis
All visible form inputs (input[type=text], input[type=email], input[type=tel], input[type=number], textarea, select) were identified, excluding hidden inputs and submit buttons. For each input, we checked four labeling methods: explicit <label for="id">, aria-label, aria-labelledby, or wrapping <label> element. An input was counted as labeled if any of these methods was present.
Heading analysis
All heading elements (H1 through H6) were extracted in document order. We checked: total heading count, H1 count (to determine single H1, no H1, or multiple H1), and sequential level ordering (any jump of more than 1 level between consecutive headings was flagged as a level skip).
Skip link detection
We searched for anchor elements near the top of the <body> with href values pointing to in-page targets (#main, #content, #main-content, etc.) and text content indicating a skip function ("skip to content," "skip navigation," etc.).
Language attribute
Checked for the presence of a lang attribute on the <html> element. Any non-empty value was counted as present.
ARIA analysis
Counted all elements with role attributes and all elements with any aria-* attributes. Extracted unique role values per site. Aggregated across all 303 sites to determine the most common roles and overall ARIA adoption rate.
Link text analysis
Sampled up to 20 links per page and classified link text as "generic" if it matched common patterns: "click here," "read more," "learn more," "more," "here," "link," etc. Calculated the percentage of generic links per site.