🔍 Restore. Reinvest. Renew. (R3) — Accessibility Audit Report
Accessibility audit report for the Restore. Reinvest. Renew. (R3) program website (Illinois Criminal Justice Information Authority (ICJIA)).
- Total Violations 0
- Total Passes 1772
- Pages Passing 26/26
- Skip Links 78/78
📋 All Tested Pages
| URL | Viewport | Violations | Passes | Skip Link | Status |
|---|---|---|---|---|---|
/ | desktop | 0 | 25 | ✅ | ✅ Pass |
/ | tablet | 0 | 25 | ✅ | ✅ Pass |
/ | mobile | 0 | 25 | ✅ | ✅ Pass |
/board/ | desktop | 0 | 26 | ✅ | ✅ Pass |
/board/ | tablet | 0 | 25 | ✅ | ✅ Pass |
/board/ | mobile | 0 | 26 | ✅ | ✅ Pass |
/collaboratives/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/collaboratives/ | tablet | 0 | 21 | ✅ | ✅ Pass |
/collaboratives/ | mobile | 0 | 21 | ✅ | ✅ Pass |
/contact/ | desktop | 0 | 28 | ✅ | ✅ Pass |
/contact/ | tablet | 0 | 27 | ✅ | ✅ Pass |
/contact/ | mobile | 0 | 27 | ✅ | ✅ Pass |
/documentation/accessibility/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/documentation/accessibility/ | tablet | 0 | 23 | ✅ | ✅ Pass |
/documentation/accessibility/ | mobile | 0 | 24 | ✅ | ✅ Pass |
/eligibility/ | desktop | 0 | 26 | ✅ | ✅ Pass |
/eligibility/ | tablet | 0 | 24 | ✅ | ✅ Pass |
/eligibility/ | mobile | 0 | 24 | ✅ | ✅ Pass |
/faqs/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/faqs/ | tablet | 0 | 22 | ✅ | ✅ Pass |
/faqs/ | mobile | 0 | 22 | ✅ | ✅ Pass |
/meetings/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/meetings/ | tablet | 0 | 21 | ✅ | ✅ Pass |
/meetings/ | mobile | 0 | 21 | ✅ | ✅ Pass |
/news/ | desktop | 0 | 22 | ✅ | ✅ Pass |
/news/ | tablet | 0 | 22 | ✅ | ✅ Pass |
/news/ | mobile | 0 | 22 | ✅ | ✅ Pass |
/news/2021-01-21-release/ | desktop | 0 | 22 | ✅ | ✅ Pass |
/news/2021-01-21-release/ | tablet | 0 | 20 | ✅ | ✅ Pass |
/news/2021-01-21-release/ | mobile | 0 | 20 | ✅ | ✅ Pass |
/news/2022-06-23-r3-grants-list/ | desktop | 0 | 22 | ✅ | ✅ Pass |
/news/2022-06-23-r3-grants-list/ | tablet | 0 | 20 | ✅ | ✅ Pass |
/news/2022-06-23-r3-grants-list/ | mobile | 0 | 20 | ✅ | ✅ Pass |
/news/2023-04-06-annual-report-2023/ | desktop | 0 | 22 | ✅ | ✅ Pass |
/news/2023-04-06-annual-report-2023/ | tablet | 0 | 20 | ✅ | ✅ Pass |
/news/2023-04-06-annual-report-2023/ | mobile | 0 | 20 | ✅ | ✅ Pass |
/news/icjia-awards-35-million-in-restore-reinvest-and-renew-r3-program-grants/ | desktop | 0 | 24 | ✅ | ✅ Pass |
/news/icjia-awards-35-million-in-restore-reinvest-and-renew-r3-program-grants/ | tablet | 0 | 23 | ✅ | ✅ Pass |
/news/icjia-awards-35-million-in-restore-reinvest-and-renew-r3-program-grants/ | mobile | 0 | 23 | ✅ | ✅ Pass |
/news/lend-us-your-expertise-become-a-grant-application-reviewer/ | desktop | 0 | 22 | ✅ | ✅ Pass |
/news/lend-us-your-expertise-become-a-grant-application-reviewer/ | tablet | 0 | 20 | ✅ | ✅ Pass |
/news/lend-us-your-expertise-become-a-grant-application-reviewer/ | mobile | 0 | 20 | ✅ | ✅ Pass |
/news/r3-2021-annual-report/ | desktop | 0 | 22 | ✅ | ✅ Pass |
/news/r3-2021-annual-report/ | tablet | 0 | 20 | ✅ | ✅ Pass |
/news/r3-2021-annual-report/ | mobile | 0 | 20 | ✅ | ✅ Pass |
/news/r3-2022-annual-report/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/news/r3-2022-annual-report/ | tablet | 0 | 21 | ✅ | ✅ Pass |
/news/r3-2022-annual-report/ | mobile | 0 | 21 | ✅ | ✅ Pass |
/news/restore-reinvest-renew-r3-program-grants-apply-now/ | desktop | 0 | 24 | ✅ | ✅ Pass |
/news/restore-reinvest-renew-r3-program-grants-apply-now/ | tablet | 0 | 23 | ✅ | ✅ Pass |
/news/restore-reinvest-renew-r3-program-grants-apply-now/ | mobile | 0 | 23 | ✅ | ✅ Pass |
/privacy/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/privacy/ | tablet | 0 | 21 | ✅ | ✅ Pass |
/privacy/ | mobile | 0 | 21 | ✅ | ✅ Pass |
/research/ | desktop | 0 | 24 | ✅ | ✅ Pass |
/research/ | tablet | 0 | 24 | ✅ | ✅ Pass |
/research/ | mobile | 0 | 24 | ✅ | ✅ Pass |
/resources/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/resources/ | tablet | 0 | 23 | ✅ | ✅ Pass |
/resources/ | mobile | 0 | 23 | ✅ | ✅ Pass |
/resources/ampli-fund-portal-guide-and-tip-sheet/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/resources/ampli-fund-portal-guide-and-tip-sheet/ | tablet | 0 | 22 | ✅ | ✅ Pass |
/resources/ampli-fund-portal-guide-and-tip-sheet/ | mobile | 0 | 22 | ✅ | ✅ Pass |
/resources/prequalification-steps/ | desktop | 0 | 24 | ✅ | ✅ Pass |
/resources/prequalification-steps/ | tablet | 0 | 23 | ✅ | ✅ Pass |
/resources/prequalification-steps/ | mobile | 0 | 23 | ✅ | ✅ Pass |
/resources/single-page/ | desktop | 0 | 24 | ✅ | ✅ Pass |
/resources/single-page/ | tablet | 0 | 23 | ✅ | ✅ Pass |
/resources/single-page/ | mobile | 0 | 23 | ✅ | ✅ Pass |
/resources/spanish-language-materials/ | desktop | 0 | 23 | ✅ | ✅ Pass |
/resources/spanish-language-materials/ | tablet | 0 | 22 | ✅ | ✅ Pass |
/resources/spanish-language-materials/ | mobile | 0 | 22 | ✅ | ✅ Pass |
/resources/video-resources/ | desktop | 0 | 22 | ✅ | ✅ Pass |
/resources/video-resources/ | tablet | 0 | 20 | ✅ | ✅ Pass |
/resources/video-resources/ | mobile | 0 | 20 | ✅ | ✅ Pass |
/search/ | desktop | 0 | 26 | ✅ | ✅ Pass |
/search/ | tablet | 0 | 24 | ✅ | ✅ Pass |
/search/ | mobile | 0 | 24 | ✅ | ✅ Pass |
About axe-core
What does axe-core test for?
- Semantic HTML structure (headings, landmarks, lists)
- Keyboard navigation and focus management
- Color contrast (programmatically — over solid backgrounds only)
- Form labels and field associations
- Alternative text on images and decorative-image conventions
- ARIA roles, states, properties, and valid attribute values
- Page-level requirements (document title, lang attribute, viewport meta)
- Interactive element accessible names (buttons, links, controls)
- Duplicate IDs that would confuse assistive tech
Why is axe-core critical for accessibility?
axe-core is the industry-standard automated accessibility testing engine, used by
Microsoft, Google, the U.S. federal government, and most accessibility-conformance
tools. Automated audits catch roughly 30–40% of WCAG conformance issues; the
remainder (text-over-image contrast, keyboard traps, screen-reader experience,
meaningful sequence) require human review. axe-core eliminates the large class of
regressions that would otherwise reach production undetected, and is run on
every build of this site via the Playwright e2e sweep at
tests/e2e/a11y-sweep.spec.ts.
Rule Categories in This Audit
- WCAG 2.1 Level A & AA — the legal-conformance bar for ADA Title II / IITAA / Section 508 (the target this site is audited against).
- Best-practice rules — landmark structure, heading order, and other Deque-recommended checks beyond strict WCAG.
- Experimental rules — not included in this audit (only stable WCAG 2.1 A/AA tagged rules are run).
Configured Rules
The audit runs every axe-core rule tagged wcag2a, wcag2aa, wcag21a, or wcag21aa (68 rules total in this version of axe-core):
area-alt— Ensure <area> elements of image maps have alternative textaria-allowed-attr— Ensure an element's role supports its ARIA attributesaria-braille-equivalent— Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalentaria-command-name— Ensure every ARIA button, link and menuitem has an accessible namearia-conditional-attr— Ensure ARIA attributes are used as described in the specification of the element's rolearia-deprecated-role— Ensure elements do not use deprecated rolesaria-hidden-body— Ensure aria-hidden="true" is not present on the document body.aria-hidden-focus— Ensure aria-hidden elements are not focusable nor contain focusable elementsaria-input-field-name— Ensure every ARIA input field has an accessible namearia-meter-name— Ensure every ARIA meter node has an accessible namearia-progressbar-name— Ensure every ARIA progressbar node has an accessible namearia-prohibited-attr— Ensure ARIA attributes are not prohibited for an element's rolearia-required-attr— Ensure elements with ARIA roles have all required ARIA attributesaria-required-children— Ensure elements with an ARIA role that require child roles contain themaria-required-parent— Ensure elements with an ARIA role that require parent roles are contained by themaria-roledescription— Ensure aria-roledescription is only used on elements with an implicit or explicit rolearia-roles— Ensure all elements with a role attribute use a valid valuearia-toggle-field-name— Ensure every ARIA toggle field has an accessible namearia-tooltip-name— Ensure every ARIA tooltip node has an accessible namearia-valid-attr— Ensure attributes that begin with aria- are valid ARIA attributesaria-valid-attr-value— Ensure all ARIA attributes have valid valuesaudio-caption— Ensure <audio> elements have captionsautocomplete-valid— Ensure the autocomplete attribute is correct and suitable for the form fieldavoid-inline-spacing— Ensure that text spacing set through style attributes can be adjusted with custom stylesheetsblink— Ensure <blink> elements are not usedbutton-name— Ensure buttons have discernible textbypass— Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the contentcolor-contrast— Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholdscss-orientation-lock— Ensure content is not locked to any specific display orientation, and the content is operable in all display orientationsdefinition-list— Ensure <dl> elements are structured correctlydlitem— Ensure <dt> and <dd> elements are contained by a <dl>document-title— Ensure each HTML document contains a non-empty <title> elementduplicate-id-aria— Ensure every id attribute value used in ARIA and in labels is uniqueform-field-multiple-labels— Ensure form field does not have multiple label elementsframe-focusable-content— Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1frame-title— Ensure <iframe> and <frame> elements have an accessible nameframe-title-unique— Ensure <iframe> and <frame> elements contain a unique title attributehtml-has-lang— Ensure every HTML document has a lang attributehtml-lang-valid— Ensure the lang attribute of the <html> element has a valid valuehtml-xml-lang-mismatch— Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the pageimage-alt— Ensure <img> elements have alternative text or a role of none or presentationinput-button-name— Ensure input buttons have discernible textinput-image-alt— Ensure <input type="image"> elements have alternative textlabel— Ensure every form element has a labellabel-content-name-mismatch— Ensure that elements labelled through their content must have their visible text as part of their accessible namelink-in-text-block— Ensure links are distinguished from surrounding text in a way that does not rely on colorlink-name— Ensure links have discernible textlist— Ensure that lists are structured correctlylistitem— Ensure <li> elements are used semanticallymarquee— Ensure <marquee> elements are not usedmeta-refresh— Ensure <meta http-equiv="refresh"> is not used for delayed refreshmeta-viewport— Ensure <meta name="viewport"> does not disable text scaling and zoomingnested-interactive— Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologiesno-autoplay-audio— Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audioobject-alt— Ensure <object> elements have alternative textp-as-heading— Ensure bold, italic text and font-size is not used to style <p> elements as a headingrole-img-alt— Ensure [role="img"] elements have alternative textscrollable-region-focusable— Ensure elements that have scrollable content are accessible by keyboard in Safariselect-name— Ensure select element has an accessible nameserver-side-image-map— Ensure that server-side image maps are not usedsummary-name— Ensure summary elements have discernible textsvg-img-alt— Ensure <svg> elements with an img, graphics-document or graphics-symbol role have accessible texttable-fake-caption— Ensure that tables with a caption use the <caption> element.td-has-header— Ensure that each non-empty data cell in a <table> larger than 3 by 3 has one or more table headerstd-headers-attr— Ensure that each cell in a table that uses the headers attribute refers only to other <th> elements in that tableth-has-data-cells— Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describevalid-lang— Ensure lang attributes have valid valuesvideo-caption— Ensure <video> elements have captions
What Are Skip Links?
Skip links are accessibility features that let keyboard and screen-reader users bypass repetitive navigation and jump straight to the main content of a page. Without one, every page visit requires tabbing through the entire site navigation before reaching anything useful.
Skip links are required by WCAG 2.1 Level A (Success Criterion 2.4.1 — Bypass Blocks). A compliant implementation requires four things:
- The skip link must be the first focusable element in source order.
- It must target a real element (typically
#main-contentor#main). - It must be keyboard-accessible (i.e., a real
<a>, not a<div>with a click handler). - It must become visible when focused, even if hidden off-screen at rest.
Current status: ✅ All skip links present (78/78).
To verify yourself: load any page, press Tab, and the skip-to-main link should be the first thing that focuses. References: W3C SC 2.4.1 Understanding doc, WebAIM skip-nav technique.
About Testing Environments
This report was generated against the development environment at
Development (http://127.0.0.1:4322). Audit results from development and
production should be functionally identical — the rendered HTML / ARIA / DOM
structure is the same in both modes — but stating the environment explicitly
lets reviewers reproduce the audit and ties results to a specific code revision.
The same axe-core sweep runs against a production build on every CI run via
tests/e2e/a11y-sweep.spec.ts, hard-failing the build on any
violation. New routes are picked up automatically.
Accessibility Standards & Compliance
WCAG 2.1 Level AA
The site is audited against WCAG 2.1 Level AA — the international consensus standard for web accessibility. Level A is the minimum-bar set of success criteria; Level AA adds the contrast, reflow, and text-resize criteria that mid-grade accessibility programs target. AAA criteria (the strictest tier) are not in scope.
IITAA (Illinois Information Technology Accessibility Act)
The State of Illinois requires that public-facing IT comply with IITAA, which formally adopts WCAG 2.1 Level AA. Auditing to WCAG 2.1 AA is therefore the operative compliance target for any Illinois state agency site, including Illinois Criminal Justice Information Authority (ICJIA).
ADA Title II
The April 2024 final rule from the U.S. Department of Justice updates ADA Title II to require state and local government websites to conform to WCAG 2.1 Level AA. The compliance deadline for entities of this size is 2026; this site already satisfies the requirement.
Section 508
Section 508 of the U.S. Rehabilitation Act establishes the federal-government accessibility baseline and was harmonized with WCAG 2.0 Level AA in the 2017 "Refresh" update. Conformance with WCAG 2.1 AA exceeds Section 508 requirements.