Accessibility Audit

New Mexico State Agency
Web Accessibility Assessment

WCAG 2.1 Level AA Automated Compliance Scan

March 19, 2026 11 Agencies Scanned Prepared by Concourse

Federal Compliance Deadline: April 26, 2026

The DOJ Title II final rule requires WCAG 2.1 Level AA compliance by April 26, 2026 for all state and local government entities serving populations of 50,000 or more. This deadline is approximately 5 weeks away. Non-compliance exposes agencies to enforcement actions, complaints under the ADA, and potential loss of federal funding. The findings below identify specific barriers that must be remediated before this deadline.

Executive Summary

High-level findings from automated WCAG 2.1 Level AA scans of New Mexico state agency homepages

11
Agencies Scanned
1
Passed (Zero Errors)
111
Total Errors Found
10
Agencies with Errors

Automated scanning of 11 New Mexico state agency websites identified 111 WCAG 2.1 Level AA errors across all scanned sites. Only one agency -- the Higher Education Department -- returned zero automated errors.

The most prevalent violation categories were duplicate HTML ID attributes (41 instances across 6 agencies), insufficient color contrast (30 instances across 3 agencies), disabled zoom/scaling (4 instances across 3 agencies), and ARIA role conflicts (9 instances across 2 agencies). A common theme across newer Divi-based sites is the meta viewport tag disabling user zoom, which blocks magnification for low-vision users. These patterns indicate systemic issues with shared website templates and design systems rather than isolated problems, meaning a platform-level remediation approach could efficiently address violations across multiple agencies simultaneously.

Note: Automated scanning typically identifies 30-40% of total accessibility barriers. Manual testing with assistive technologies (screen readers, keyboard-only navigation, switch devices) would likely uncover additional issues not detectable through automated means, including problems with reading order, focus management, and dynamic content updates.

Agency Scorecard

Automated error count per agency homepage -- sorted by severity

Agency Errors Status Top Issue Types
Department of Information Technology (DoIT) www.doit.nm.gov 27 Fail Duplicate IDs (27)
Environment Department (NMED) www.env.nm.gov 21 Fail Contrast (13) ARIA Roles (6) Duplicate IDs (2)
Administrative Office of the Courts www.nmcourts.gov 19 Fail Contrast (14) Obsolete Markup (2) Empty Headings (1) Duplicate IDs (1) Form Labels (1)
Department of Finance & Administration (DFA) www.nmdfa.state.nm.us 14 Fail Duplicate IDs (9) Button Names (2) Form Labels (2) Image Alt (1)
State Portal (nm.gov) www.nm.gov 11 Fail Form Labels (4) Contrast (3) Select Names (2) Duplicate IDs (1) Image Alt (1)
Taxation & Revenue Department (TRD) www.tax.newmexico.gov 8 Needs Work Empty Headings (4) ARIA Roles (3) Duplicate IDs (1)
Department of Transportation (NMDOT) dot.nm.gov 4 Needs Work Zoom Disabled (2) Empty Link (1) List Structure (1)
Children, Youth & Families Department (CYFD) cyfd.nm.gov 3 Needs Work Empty Links (2) Zoom Disabled (1)
General Services Department (GSD) generalservices.state.nm.us 2 Needs Work Empty Link (1) Zoom Disabled (1)
Human Services Department (HSD) www.hsd.state.nm.us 2 Needs Work Empty Link (1) Obsolete Markup (1)
Higher Education Department (HED) hed.nm.gov 0 Pass* No automated errors detected

* "Pass" indicates zero automated errors detected. Manual testing is still required for full WCAG 2.1 AA compliance verification.

Most Common Violations

Aggregated across all scanned agencies, ranked by frequency

41

Duplicate ID Attribute Values

WCAG2AA.Principle4.Guideline4_1.4_1_1.F77

Multiple HTML elements share the same id attribute value on the same page. This violates HTML specification and causes assistive technologies (screen readers, voice control) to become confused about which element is being referenced, potentially making entire sections of the page inaccessible.

How to fix: Audit all id attributes to ensure uniqueness. This issue commonly stems from duplicated navigation menus (desktop vs. mobile) using the same IDs -- consider using CSS classes instead of IDs for styling, or append a suffix (e.g., _mobile) to distinguish duplicates.
30

Insufficient Color Contrast

WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail

Text elements do not meet the minimum contrast ratio of 4.5:1 against their background color. Several instances showed contrast ratios as low as 1:1 (white text on white background) and 1.12:1, making text virtually invisible to users with low vision or color vision deficiencies.

How to fix: Use a contrast checker tool to verify all text/background color combinations meet the 4.5:1 ratio (3:1 for large text 18px+ or bold 14px+). Common fixes include darkening text color or lightening backgrounds. Update design system color tokens to ensure compliant palettes.
9

ARIA Presentation Role Conflicts

WCAG2AA.Principle1.Guideline1_3.1_3_1.F92,ARIA4

Elements with role="presentation" contain child elements that have semantic meaning (e.g., links, buttons, form fields inside a presentational table). This strips the semantic structure from the child elements, making them invisible to assistive technologies.

How to fix: Remove role="presentation" from container elements that hold interactive or semantic content. If the intent is decorative, move interactive content outside the presentational container. Replace layout tables with CSS flexbox or grid.
12

Missing Form Field Labels & Accessible Names

WCAG2AA.Principle1.Guideline1_3.1_3_1.F68 / Principle4.Guideline4_1.4_1_2.H91

Form inputs (text fields, search boxes, select dropdowns, submit buttons) and links lack accessible names. This includes unlabelled form fields (4), text inputs without names (2), select dropdowns without names (2), hidden submit buttons without names (2), search inputs without names (1), and an empty anchor link (1). Screen reader users cannot determine the purpose of these controls.

How to fix: Associate every form control with a visible <label> element using the for attribute, or add aria-label or aria-labelledby attributes. For search inputs, aria-label="Search" is a minimal fix. For submit buttons, add a value attribute. For empty links, add visible or aria-label text content.
5

Empty Heading Tags

WCAG2AA.Principle1.Guideline1_3.1_3_1.H42.2

Heading elements (<h2>, etc.) exist in the page but contain no text content. Screen reader users rely on headings to navigate page structure -- empty headings create confusing "blank" landmarks that disrupt navigation.

How to fix: Add meaningful text to empty heading elements, or remove the heading tag entirely if it is not serving a structural purpose. If headings are populated dynamically via JavaScript, ensure content loads before the heading is rendered.
3

Obsolete Presentational Markup

WCAG2AA.Principle1.Guideline1_3.1_3_1.H49.Center

The deprecated <center> HTML tag is used for layout purposes. This tag was removed from the HTML5 specification and its use indicates outdated coding practices that may signal broader accessibility concerns.

How to fix: Replace <center> tags with CSS: use text-align: center for text centering or margin: 0 auto for block element centering.
2

Image Alt Text / Title Conflicts

WCAG2AA.Principle1.Guideline1_1.1_1_1.H67.1

Images have empty alt="" attributes (marking them as decorative) but also have non-empty title attributes. This is contradictory: the image is both "decorative" and has descriptive text, confusing assistive technologies.

How to fix: If the image is decorative, remove the title attribute. If the image conveys meaning, provide a descriptive alt attribute value instead of leaving it empty.
4

Zooming and Scaling Disabled

WCAG2AA.Principle1.Guideline1_4.1_4_4 (meta-viewport)

The <meta name="viewport"> tag uses user-scalable=no or maximum-scale=1.0, which prevents users from zooming the page on mobile devices. This blocks low-vision users from magnifying content and violates WCAG 1.4.4 (Resize Text). Found on 3 agencies using Divi-based themes.

How to fix: Remove user-scalable=no and maximum-scale=1.0 from the viewport meta tag. The tag should read: <meta name="viewport" content="width=device-width, initial-scale=1.0">. In Divi themes, this is often set in the theme options or injected by a plugin -- check Theme Options → General → Custom CSS and the header output template.
4

Links Without Discernible Text

WCAG2AA.Principle2.Guideline2_4.2_4_4 / Principle4.Guideline4_1.4_1_2 (link-name)

Anchor elements (<a>) exist in the page that have no text content, aria-label, or aria-labelledby attribute. Screen reader users encounter these as unlabelled links with no indication of their destination. Common culprits include logo links wrapping only an image with no alt text, and empty placeholder links in footer templates.

How to fix: Add visible text, aria-label, or ensure wrapped images have descriptive alt attributes. For logo links: <a href="/" aria-label="Home - Agency Name">. Remove empty <a href="#"></a> placeholder elements entirely.

Detailed Findings by Agency

Department of Information Technology (DoIT)

www.doit.nm.gov
27 Errors
WCAG Criteria Description Affected Element
4.1.1 F77 Duplicate id attribute value "menu-item-1944_desktop_0_tb_header" found on the web page. #menu-item-1944_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1945_desktop_0_tb_header" found on the web page. #menu-item-1945_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1927_desktop_0_tb_header" found on the web page. #menu-item-1927_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1946_desktop_0_tb_header" found on the web page. #menu-item-1946_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-2868_desktop_0_tb_header" found on the web page. #menu-item-2868_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1952_desktop_0_tb_header" found on the web page. #menu-item-1952_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1947_desktop_0_tb_header" found on the web page. #menu-item-1947_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1949_desktop_0_tb_header" found on the web page. #menu-item-1949_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1950_desktop_0_tb_header" found on the web page. #menu-item-1950_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1948_desktop_0_tb_header" found on the web page. #menu-item-1948_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1951_desktop_0_tb_header" found on the web page. #menu-item-1951_desktop_0_tb_header
4.1.1 F77 Duplicate id attribute value "menu-item-1811_desktop_0_tb_header" found on the web page. #menu-item-1811_desktop_0_tb_header
4.1.1 F77 Duplicate id "menu-item-37150_desktop_0_tb_header" -- pattern repeats across 15 additional navigation menu items in desktop/mobile duplicated menus. Multiple #menu-item-*_desktop_*_tb_header

All 27 errors are duplicate ID violations caused by the Divi theme generating identical IDs for desktop and mobile navigation menus. A theme-level fix (Divi Builder configuration or custom child theme) would resolve all violations simultaneously.

Environment Department (NMED)

www.env.nm.gov
21 Errors
WCAG Criteria Description Affected Element
1.4.3 G18.Fail Insufficient contrast ratio 3.21:1 (need 4.5:1). Recommendation: change background to #1f8381. #frequently-viewed-menu-bar > li:nth-child(3) > span > a
1.4.3 G18.Fail Insufficient contrast ratio 4.3:1 (need 4.5:1). Recommendation: change background to #2e855b. #frequently-viewed-menu-bar > li:nth-child(4) > span > a
1.4.3 G18.Fail Insufficient contrast ratio 3.76:1 (need 4.5:1). Recommendation: change background to #637e47. #frequently-viewed-menu-bar > li:nth-child(5) > span > a
1.4.3 G18.Fail Insufficient contrast ratio 1.85:1 (need 4.5:1) on calendar time elements. Recommendation: change text colour to #0f0a00. div.trumba_time (10 instances)
4.1.1 F77 Duplicate id attribute value "menu-bar" found on the web page. #menu-bar
4.1.1 F77 Duplicate id attribute value "main-section" found on the web page. #main-section
1.3.1 F92,ARIA4 Element's role is "presentation" but contains child elements with semantic meaning (links, images). #secondary-menu-bar > li (6 instances)

Primary issues: calendar widget time elements have severely low contrast (1.85:1), navigation menu uses conflicting ARIA roles, and the color-coded "frequently viewed" menu bar uses non-compliant color combinations.

Administrative Office of the Courts

www.nmcourts.gov
19 Errors
WCAG Criteria Description Affected Element
1.4.3 G18.Fail Contrast ratio 1:1 on primary navigation links: "Find Your Court", "Jury Duty", "Self-Representation", "Pay Fines/Fees", "Services & Programs", "Public Records", "Forms & Files". White text color (#fff) computed against transparent background. #page > nav > div > div > ul > li > a (7 instances)
1.4.3 G18.Fail Insufficient contrast ratio 4.06:1 on "See More Announcements" button (need 4.5:1). button.alm-load-more-btn
1.4.3 G18.Fail Contrast ratio 1.12:1 on footer links: Language Access Services, ADA & Accommodations, Careers, Public Records Request (IPRA), Contact Us. #content > footer > div > center > center > nav > ul > li > a (5 instances)
1.4.3 G18.Fail Contrast ratio 1.12:1 on SVG style element text. #Layer_1 > defs > style
4.1.2 H91 Search input element does not have an accessible name. input[type="search"][name="s"]
4.1.1 F77 Duplicate id attribute value "site-search" found on the web page. #site-search
1.3.1 H42.2 Empty heading tag found with no content (modal title element). #modal-leave-site-title
1.3.1 H49.Center Obsolete <center> tag used in footer for layout (2 instances). #content > footer > div > center

Critical finding: Primary navigation registers 1:1 contrast ratio -- the text color is white and the element's own background is transparent. While the nav bar visually has a dark background (inherited from a parent), WCAG compliance requires that each element's own computed contrast meet the 4.5:1 threshold. Footer links at 1.12:1 are also severe. The ironically named "ADA & Accommodations" link in the footer is itself inaccessible at 1.12:1 contrast.

Department of Finance & Administration (DFA)

www.nmdfa.state.nm.us
14 Errors
WCAG Criteria Description Affected Element
4.1.1 F77 Duplicate id attribute values for navigation menu items (9 instances): menu-item-8436, 14243, 14179, 13841, 13751, 8434, 8435, 12421, 2714. #menu-item-*_desktop_0_tb_header
4.1.2 H91 Hidden submit button inputs do not have accessible names (no value, aria-label, or aria-labelledby). Two instances: mobile menu search and header search. input[type="submit"][style="display:none"] (2 instances)
4.1.2 H91 Text input element does not have an accessible name. #et_pb_search_0 > form > div > input
1.3.1 F68 Search form field should be labelled using label element, title, aria-label, or aria-labelledby. #et_pb_search_0 > form > div > input
1.1.1 H67.1 Img element with empty alt text has non-empty title attribute "DFA-Logo Color". Header logo img.wp-image-10395

Same Divi theme duplicate ID pattern as DoIT. Additionally, form inputs (search fields, submit buttons) lack accessible names, and the agency logo image has conflicting alt/title attributes.

State Portal (nm.gov)

www.nm.gov
11 Errors
WCAG Criteria Description Affected Element
4.1.2 H91 Text input element (search) does not have an accessible name. #et_pb_search_0 > form > div > input
1.3.1 F68 Search form field not labelled. #et_pb_search_0 > form > div > input
4.1.1 F77 Duplicate id attribute value "main-menu-container". #main-menu-container
1.4.3 G18.Fail Insufficient contrast ratio 4:1 (need 4.5:1) on links: "search tool", "online services", "department & agencies". Recommendation: change text to #0368ba. #main-menu-container > div > div > div > div > div > p > span > a (3 instances)
4.1.2 H91 Agency filter select element does not have an accessible name. select.agency-filter
1.3.1 F68 Agency filter and tag filter select elements not labelled. select.agency-filter, select.tag-filter
1.1.1 H67.1 Image with empty alt text has title attribute "news-alerts". img[title="news-alerts"]

Taxation & Revenue Department (TRD)

www.tax.newmexico.gov
8 Errors
WCAG Criteria Description Affected Element
4.1.1 F77 Duplicate id attribute value "google_translate_element2". #google_translate_element2
1.3.1 H42.2 Four empty <h2> heading tags with tabindex="-1" and no text content. #post-2 > div > div > div > div > div > div > div > div > div > div > div > h2 (4 instances)
1.3.1 F92,ARIA4 Tables with role="presentation" contain child elements with semantic meaning (Google Custom Search elements). table.gsc-search-box, #gs_id50, body > table (3 instances)

The Google Custom Search and Google Translate widgets introduce ARIA role conflicts. Empty headings suggest JavaScript-populated content that isn't rendering during the accessibility scan, which may also affect real users on slow connections.

Human Services Department (HSD)

www.hsd.state.nm.us
2 Errors
WCAG Criteria Description Affected Element
4.1.2 H91.A Anchor element found with a valid href attribute, but no link content has been supplied. The link points to the HCA calendar page but has no visible or accessible text. #cmplz-cookiebanner-container > div > div > ul > li > a
1.3.1 H49.Center Presentational markup (<center>) used that has become obsolete in HTML5. Wraps an embedded iframe. #post-7 > div > div > div > div > div > div > div > div > center

Lowest automated error count among scanned sites. One new issue detected in the cookie consent banner: an empty link element. The other violation is minor (deprecated HTML tag). Manual testing recommended given the limited interactive content on the homepage.

Higher Education Department (HED)

hed.nm.gov
0 Errors

No Automated Errors Detected

This site returned zero WCAG 2.1 Level AA errors from automated scanning. This is a positive indicator but does not guarantee full compliance. Manual testing with assistive technologies is still recommended to verify keyboard navigation, screen reader compatibility, and dynamic content accessibility.

Department of Transportation (NMDOT)

dot.nm.gov
4 Errors
WCAG Criteria Description Affected Element
1.4.4 meta-viewport Zooming and scaling disabled via user-scalable=no and maximum-scale=1.0 in two separate viewport meta tags. This prevents low-vision users from magnifying content on mobile devices. meta[name="viewport"] (2 instances)
2.4.4 / 4.1.2 link-name Logo link wraps an image but has no accessible text, aria-label, or alt text on the child image. Screen readers announce this as an unlabelled link. .et_pb_menu__logo > a[role="link"]
1.3.1 list A <ul> element contains a direct child <ul> without a wrapping <li>, violating list structure requirements. .et_pb_text_inner > ul

The most critical issue is the duplicated viewport meta tag disabling zoom -- a Divi theme default that should be overridden in theme options. The logo link fix requires adding aria-label="Home - NMDOT" or alt text to the logo image.

Children, Youth & Families Department (CYFD)

cyfd.nm.gov
3 Errors
WCAG Criteria Description Affected Element
2.4.4 / 4.1.2 link-name Two empty anchor elements (<a href="#"></a>) in the footer template with no text content, aria-label, or child elements. Screen readers announce these as blank, clickable links. .et_pb_text_0_tb_footer a, .et_pb_text_1_tb_footer a (2 instances)
1.4.4 meta-viewport Viewport meta tag includes user-scalable=0 and maximum-scale=1.0, preventing users from zooming on mobile devices. meta[name="viewport"]

The empty footer links appear to be remnants of the Divi footer builder template -- they should be removed entirely or given meaningful content. The viewport zoom restriction is the same Divi theme default seen on NMDOT and GSD.

General Services Department (GSD)

generalservices.state.nm.us
2 Errors
WCAG Criteria Description Affected Element
2.4.4 / 4.1.2 link-name Logo link in the header wraps an image but provides no accessible name. Screen readers cannot determine the link's purpose. .et_pb_menu__logo > a[role="link"]
1.4.4 meta-viewport Viewport meta tag includes user-scalable=0 and maximum-scale=1.0, disabling pinch-to-zoom on mobile devices. meta[name="viewport"]

Same two-issue pattern as other Divi-based state sites: logo link without accessible text and viewport zoom disabled. Both are quick fixes at the theme configuration level.