Accessibility Health Check
https://stlouisco.com
Strong
https://daylight.sonde.life/usgov/stlouisco-com/
Strong
Executive Summary
Top Findings
criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
<!-- a11y: role="link" -->
Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.
criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
<!-- a11y: role="link" -->
Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.
criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
<!-- a11y: role="link" -->
Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.
criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
<!-- a11y: role="link" -->
Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.
criticalImages must have alternative text: Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element's default semantics were not overridden with role="none" or role="presentation"WCAG 1.1.1
<img src="/sites/default/cache/file/F3EB1D8D-9705-4A94-B86E4C1DCECC0633_landscape.jpg" class="">
Ensure <img> elements have alternative text or a role of none or presentation. See: https://www.w3.org/WAI/WCAG22/Understanding/non-text-content
criticalElements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false"WCAG 4.1.2
<div class="yxt-AutoComplete-wrapper js-yxt-AutoComplete-wrapper" aria-expanded="false"> </div>
Ensure an element's role supports its ARIA attributes. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value
criticalImages must have alternative text: Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element's default semantics were not overridden with role="none" or role="presentation"WCAG 1.1.1
<img src="/sites/default/cache/file/62CE4238-649F-4A44-928BC962E991D9C3_landscape.jpg" class="">
Ensure <img> elements have alternative text or a role of none or presentation. See: https://www.w3.org/WAI/WCAG22/Understanding/non-text-content
criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "Drone View: Fly over St. Louis County"WCAG 1.4.3
<div class="words">Drone View: Fly over St. Louis County</div>
Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).
criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgba(0, 0, 0, 0), background: rgb(255, 255, 255). Text: "Previous"WCAG 1.4.3
<button class="slick-prev slick-arrow" aria-label="Previous" type="button" style="">Previous</button>
Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).
criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgba(0, 0, 0, 0), background: rgb(255, 255, 255). Text: "Next"WCAG 1.4.3
<button class="slick-next slick-arrow" aria-label="Next" type="button" style="">Next</button>
Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).
highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
<!-- a11y: role="image" -->
Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.
highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
<!-- a11y: role="image" -->
Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.
highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
<!-- a11y: role="image" -->
Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.
highInteractive controls must not be nested: Fix any of the following: Element has focusable descendantsWCAG 4.1.2
<div id="site-search-icon" class="text-center btn" style="padding:0;" role="button">
Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value
highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
<a href="/st-louis-county-government/county-executive/county-executive-news/2025-annual-report-highlights-a-year-of-progress-innovation-and-impact-in-saint-louis-county/" target="_self" tabindex="0"><...
Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context
highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
<a class="stretched-link" alt="County Council" href="http://stlouiscountymo.gov/st-louis-county-government/county-council/"></a>
Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context
highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
<a href="/st-louis-county-government/county-executive/county-executive-news/county-executive-requests-funding-for-violence-reduction-program/" target="_self" tabindex="0"><img src="/sites/default/cach...
Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context
highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
<a class="stretched-link" alt="County Executive" href="https://stlouiscountymo.gov/st-louis-county-government/county-executive/"></a>
Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context
highInteractive controls must not be nested: Fix any of the following: Element has focusable descendantsWCAG 4.1.2WCAG 1.1.1
<div id="header-tablet__view" class="hero-wrapper small-view hideHeader" role="img" alt="Drone View: Fly over St. Louis County" style="z-index:1;height:350px; max-height:350px; padding-top:116.6666666...
Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value Ensure [role="img"] elements have alternative text. See: https://www.w3.org/WAI/WCAG22/Understanding/non-text-content
highInteractive controls must not be nested: Fix any of the following: Element has focusable descendantsWCAG 4.1.2
<div id="site-search-icon" class="text-center btn" style="padding:0;" role="button">
<a href="/search-results/"><img alt="search" src="/themes/default/modules/yext_search/assets/govsearchW.png...Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value
highFocus jumps backward from "County Executive Requests Funding for Violence Reduction Pro" to "#slick-slide01 > div > div > a" (visual distance: 673px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
<a></a>
Reorder elements in the DOM to match the visual layout.
highFocus jumps backward from "Accessibility Menu" to "Skip to main content" (visual distance: 743px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
<a>Skip to main content</a>
Reorder elements in the DOM to match the visual layout.
highFocus jumps backward from "Accessibility Menu" to "Skip to main content" (visual distance: 741px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
<a>Skip to main content</a>
Reorder elements in the DOM to match the visual layout.
highMissing Strict-Transport-Security header (HSTS)
Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Content-Type-Options: nosniff Add X-Frame-Options: DENY or SAMEORIGIN Add a Content-Security-Policy header with appropriate directives Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer
mediumPage has 2 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
<!-- 2 navigation landmarks, 1 labeled -->
Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.
mediumPage has 3 "navigation" landmarks but only 2 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
<!-- 3 navigation landmarks, 2 labeled -->
Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.
mediumDocument should have one main landmark: Fix all of the following: Document does not have a main landmark
<html lang="en" data-uw-w-loader="">
Ensure the document has a main landmark. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="slick-slide slick-active" data-slick-index="1" aria-hidden="false" role="tabpanel" id="slick-slide01" style="width: 555px;">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<ul class="slick-dots" role="tablist" style="">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="collection" data-objectid="F931B810-0FF2-46FA-A..." data-instanceid="D66B2D46-BC6F-4D2E-9..." data-objectname="Collection" data-objecticonclass="mi-th...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-cta__item__content">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div id="data-container" style="padding-bottom:1rem;">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div style="padding-top:1rem; padding-bottom:1.75rem;"> <h2 style="font-size:2.5rem;margin:0; color:#24456A;text-align:center;" data-uw-rm-heading="prs">COUNTY STATS AT A GLANCE</h2> </div>
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="container" data-objectid="31750DB2-C84F-4E5C-B..." data-instanceid="92EC5C6F-5538-41F5-9..." data-objectname="Container" data-objecticonclass="mi-squa...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="collection" data-objectid="0A9921A8-C6BF-4CA7-9..." data-instanceid="729E5139-8A44-4420-A..." data-objectname="Collection" data-objecticonclass="mi-th...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-exp..." data-object="container" data-objectid="006F7F06-E550-47ED-B..." data-instanceid="F910F9F4-06CD-4990-A..." data-objectname="Container" data-objecticonclass="mi-squa...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="collection" data-objectid="F5773DA4-A2B9-4F07-A..." data-instanceid="CC549BFB-5CED-44DC-9..." data-objectname="Collection" data-objecticonclass="mi-th...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-asy..." data-object="text" data-objectname="Text" data-objecticonclass="mi-font" data-async="false" data-instanceid="8D093A35-143C-4496-A..." data-queue="true" data-object...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="slick-slide slick-current slick-active" data-slick-index="0" aria-hidden="false" role="tabpanel" id="slick-slide00" style="width: 555px;">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div id="header-tablet__view" class="hero-wrapper small-view hideHeader" role="img" alt="Drone View: Fly over St. Louis County" style="z-index:1;height:350px; max-height:350px; padding-top:116.6666666...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="container" data-objectid="C4C52A2D-5E7A-4064-9..." data-instanceid="02F2ECCC-1703-4278-9..." data-objectname="Container" data-objecticonclass="mi-squa...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumHeading levels should only increase by one: Fix any of the following: Heading order invalid
<h6 style="font-size: 1.25rem !important; font-family:lexend !important; text-align:center;">Government</h6>
Ensure the order of headings is semantically correct. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumDocument should have one main landmark: Fix all of the following: Document does not have a main landmark
<html lang="en" data-uw-w-loader="">
Ensure the document has a main landmark. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="row">
<div class="col-sm-12">
<h1 class="department-header-name">City of Ballwin: Document Shredding Event (On-Site Shredding)</h1>
...Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumClicking "Submit" inserts 2 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
<button type="button" class="js-yext-submit yxt-SearchBar-button" style="">
<div class="yxt-SearchBar-buttonImage component yxt-Answers-component" data-component="IconComponent" data-opts=Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.
mediumClicking "Skip to main content" inserts 2 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
<button class="uw-sl__item" data-uw-rm-ignore="true" data-uw-ignore-translate="true" lang="en-US" id="uw-skip-to-main"><span class="uw-sl__item__left" data-uw-ignore-translate="true"><span class="uw-s
Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.
medium"ADA Information" is visually at position 18 but receives focus at position 34 (drift: 16).WCAG 2.4.3
<a>ADA Information</a>
Align DOM order with visual presentation, or use tabIndex to match the visual sequence.
medium"Services" is visually at position 34 but receives focus at position 18 (drift: 16).WCAG 2.4.3
<a>Services</a>
Align DOM order with visual presentation, or use tabIndex to match the visual sequence.
mediumBroken link: https://stlouiscountymo.gov/contact-us/sms-terms-of-use returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/sms-terms-of-use">SMS - Terms of Use</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/awards returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/awards">Awards ✩✩✩✩✩</a>
mediumBroken link: https://stlouiscountymo.gov/services/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/">County Services</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us">Contact Us</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/privacy-policy returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/privacy-policy">Privacy Policy</a>
mediumBroken link: https://stlouiscountymo.gov/search-results/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/search-results/"></a>
mediumBroken link: https://stlouiscountymo.gov/st-louis-county-government/county-executive/county-executive-news/county-executive-requests-funding-for-violence-reduction-program/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/st-louis-county-government/county-executive/county-executive-news/county-executive-requests-funding-for-violence-reduction-program/"></a>
mediumBroken link: https://stlouiscountymo.gov/#MainContent returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/#MainContent">Skip to main content</a>
mediumBroken link: https://stlouiscountymo.gov/services returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services">Services</a>
mediumBroken link: https://stlouiscountymo.gov/services/pollen-and-mold/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/pollen-and-mold/">Pollen & Mold Count</a>
mediumBroken link: https://stlouiscountymo.gov/county-calendar/second-virtual-open-house-public-meeting-old-halls-ferry/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/county-calendar/second-virtual-open-house-public-meeting-old-halls-ferry/">Mar
30
</a>mediumBroken link: https://stlouiscountymo.gov/services/st-louis-county-claims-management/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/st-louis-county-claims-management/">File A Claim</a>
mediumBroken link: https://stlouiscountymo.gov/saint-louis-county-missouri-careers/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/saint-louis-county-missouri-careers/">County Jobs</a>
mediumBroken link: https://stlouiscountymo.gov/services/join-the-wait-line/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/join-the-wait-line/">Virtual Wait Line</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/terms-of-use returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/terms-of-use">Terms of Use</a>
mediumBroken link: https://stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/">@media screen and (max-width: 850px) {
#CountyLogo {
content:url("/sit</a>mediumBroken link: https://stlouiscountymo.gov/online-payments-and-forms/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/online-payments-and-forms/">Payments & Forms</a>
mediumBroken link: https://stlouiscountymo.gov/i-want-to/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/i-want-to/">I Want To...</a>
mediumBroken link: https://stlouiscountymo.gov/st-louis-county-departments/public-health/birth-and-death-records/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/st-louis-county-departments/public-health/birth-and-death-records/">Birth or Death Records</a>
mediumBroken link: https://stlouiscountymo.gov/services/pollen-and-mold/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/pollen-and-mold/">Pollen & Mold Count</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/privacy-policy returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/privacy-policy">Privacy Policy</a>
mediumBroken link: https://stlouiscountymo.gov/search-results/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/search-results/"></a>
mediumBroken link: https://stlouiscountymo.gov/services/join-the-wait-line/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/join-the-wait-line/">Virtual Wait Line</a>
mediumBroken link: https://stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/">@media screen and (max-width: 850px) {
#CountyLogo {
content:url("/sit</a>mediumBroken link: https://stlouiscountymo.gov/services returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services">Services</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/terms-of-use returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/terms-of-use">Terms of Use</a>
mediumBroken link: https://stlouiscountymo.gov/services/st-louis-county-claims-management/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/st-louis-county-claims-management/">File A Claim</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/awards returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/awards">Awards ✩✩✩✩✩</a>
mediumBroken link: https://stlouiscountymo.gov/saint-louis-county-missouri-careers/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/saint-louis-county-missouri-careers/">County Jobs</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/sms-terms-of-use returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/sms-terms-of-use">SMS - Terms of Use</a>
mediumBroken link: https://stlouiscountymo.gov/online-payments-and-forms/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/online-payments-and-forms/">Payments & Forms</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us">Contact Us</a>
mediumBroken link: https://stlouiscountymo.gov/county-calendar/city-of-ballwin-document-shredding-event-on-site-shredding5/#MainContent returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/county-calendar/city-of-ballwin-document-shredding-event-on-site-shredding5/#MainContent">Skip to main content</a>
mediumBroken link: https://stlouiscountymo.gov/i-want-to/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/i-want-to/">I Want To...</a>
mediumBroken link: https://stlouiscountymo.gov/services/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/">County Services</a>
mediumMissing X-Frame-Options header
Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer
lowBroken link: https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx returned status 403 Forbidden after 1 attempts
<a href="https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx">Personal Property & Real Estate Taxes</a>
lowBroken link: https://taxpayments.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://taxpayments.stlouiscountymo.gov/">Tax Receipts</a>
lowBroken link: https://twitter.com/STLCounty returned status 403 Forbidden after 1 attempts
<a href="https://twitter.com/STLCounty"></a>
lowBroken link: https://stlcopa.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://stlcopa.stlouiscountymo.gov/">County Prosecutor</a>
lowBroken link: http://stlouiscountymo.gov/st-louis-county-government/county-council/ returned status 403 Forbidden after 1 attempts
<a href="http://stlouiscountymo.gov/st-louis-county-government/county-council/"></a>
lowBroken link: https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx returned status 403 Forbidden after 1 attempts
<a href="https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx">Personal Property & Real Estate Taxes</a>
lowBroken link: https://taxpayments.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://taxpayments.stlouiscountymo.gov/">Tax Receipts</a>
lowBroken link: https://stlcopa.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://stlcopa.stlouiscountymo.gov/">County Prosecutor</a>
lowBroken link: https://csportal.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://csportal.stlouiscountymo.gov/">Resident Customer Service</a>
lowBroken link: https://twitter.com/STLCounty returned status 403 Forbidden after 1 attempts
<a href="https://twitter.com/STLCounty"></a>
Best Page Fix Opportunities
stlouiscountymo.gov62findings
criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
<!-- a11y: role="link" -->
Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.
criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
<!-- a11y: role="link" -->
Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.
criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
<!-- a11y: role="link" -->
Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.
criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
<!-- a11y: role="link" -->
Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.
criticalImages must have alternative text: Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element's default semantics were not overridden with role="none" or role="presentation"WCAG 1.1.1
<img src="/sites/default/cache/file/F3EB1D8D-9705-4A94-B86E4C1DCECC0633_landscape.jpg" class="">
Ensure <img> elements have alternative text or a role of none or presentation. See: https://www.w3.org/WAI/WCAG22/Understanding/non-text-content
criticalElements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false"WCAG 4.1.2
<div class="yxt-AutoComplete-wrapper js-yxt-AutoComplete-wrapper" aria-expanded="false"> </div>
Ensure an element's role supports its ARIA attributes. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value
criticalImages must have alternative text: Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element's default semantics were not overridden with role="none" or role="presentation"WCAG 1.1.1
<img src="/sites/default/cache/file/62CE4238-649F-4A44-928BC962E991D9C3_landscape.jpg" class="">
Ensure <img> elements have alternative text or a role of none or presentation. See: https://www.w3.org/WAI/WCAG22/Understanding/non-text-content
criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "Drone View: Fly over St. Louis County"WCAG 1.4.3
<div class="words">Drone View: Fly over St. Louis County</div>
Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).
criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgba(0, 0, 0, 0), background: rgb(255, 255, 255). Text: "Previous"WCAG 1.4.3
<button class="slick-prev slick-arrow" aria-label="Previous" type="button" style="">Previous</button>
Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).
criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgba(0, 0, 0, 0), background: rgb(255, 255, 255). Text: "Next"WCAG 1.4.3
<button class="slick-next slick-arrow" aria-label="Next" type="button" style="">Next</button>
Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).
highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
<!-- a11y: role="image" -->
Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.
highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
<!-- a11y: role="image" -->
Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.
highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
<!-- a11y: role="image" -->
Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.
highInteractive controls must not be nested: Fix any of the following: Element has focusable descendantsWCAG 4.1.2
<div id="site-search-icon" class="text-center btn" style="padding:0;" role="button">
Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value
highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
<a href="/st-louis-county-government/county-executive/county-executive-news/2025-annual-report-highlights-a-year-of-progress-innovation-and-impact-in-saint-louis-county/" target="_self" tabindex="0"><...
Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context
highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
<a class="stretched-link" alt="County Council" href="http://stlouiscountymo.gov/st-louis-county-government/county-council/"></a>
Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context
highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
<a href="/st-louis-county-government/county-executive/county-executive-news/county-executive-requests-funding-for-violence-reduction-program/" target="_self" tabindex="0"><img src="/sites/default/cach...
Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context
highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
<a class="stretched-link" alt="County Executive" href="https://stlouiscountymo.gov/st-louis-county-government/county-executive/"></a>
Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context
highInteractive controls must not be nested: Fix any of the following: Element has focusable descendantsWCAG 4.1.2WCAG 1.1.1
<div id="header-tablet__view" class="hero-wrapper small-view hideHeader" role="img" alt="Drone View: Fly over St. Louis County" style="z-index:1;height:350px; max-height:350px; padding-top:116.6666666...
Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value Ensure [role="img"] elements have alternative text. See: https://www.w3.org/WAI/WCAG22/Understanding/non-text-content
highFocus jumps backward from "County Executive Requests Funding for Violence Reduction Pro" to "#slick-slide01 > div > div > a" (visual distance: 673px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
<a></a>
Reorder elements in the DOM to match the visual layout.
highFocus jumps backward from "Accessibility Menu" to "Skip to main content" (visual distance: 743px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
<a>Skip to main content</a>
Reorder elements in the DOM to match the visual layout.
mediumPage has 2 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
<!-- 2 navigation landmarks, 1 labeled -->
Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.
mediumDocument should have one main landmark: Fix all of the following: Document does not have a main landmark
<html lang="en" data-uw-w-loader="">
Ensure the document has a main landmark. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="slick-slide slick-active" data-slick-index="1" aria-hidden="false" role="tabpanel" id="slick-slide01" style="width: 555px;">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<ul class="slick-dots" role="tablist" style="">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="collection" data-objectid="F931B810-0FF2-46FA-A..." data-instanceid="D66B2D46-BC6F-4D2E-9..." data-objectname="Collection" data-objecticonclass="mi-th...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-cta__item__content">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div id="data-container" style="padding-bottom:1rem;">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div style="padding-top:1rem; padding-bottom:1.75rem;"> <h2 style="font-size:2.5rem;margin:0; color:#24456A;text-align:center;" data-uw-rm-heading="prs">COUNTY STATS AT A GLANCE</h2> </div>
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="container" data-objectid="31750DB2-C84F-4E5C-B..." data-instanceid="92EC5C6F-5538-41F5-9..." data-objectname="Container" data-objecticonclass="mi-squa...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="collection" data-objectid="0A9921A8-C6BF-4CA7-9..." data-instanceid="729E5139-8A44-4420-A..." data-objectname="Collection" data-objecticonclass="mi-th...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-exp..." data-object="container" data-objectid="006F7F06-E550-47ED-B..." data-instanceid="F910F9F4-06CD-4990-A..." data-objectname="Container" data-objecticonclass="mi-squa...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="collection" data-objectid="F5773DA4-A2B9-4F07-A..." data-instanceid="CC549BFB-5CED-44DC-9..." data-objectname="Collection" data-objecticonclass="mi-th...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-asy..." data-object="text" data-objectname="Text" data-objecticonclass="mi-font" data-async="false" data-instanceid="8D093A35-143C-4496-A..." data-queue="true" data-object...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="slick-slide slick-current slick-active" data-slick-index="0" aria-hidden="false" role="tabpanel" id="slick-slide00" style="width: 555px;">
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div id="header-tablet__view" class="hero-wrapper small-view hideHeader" role="img" alt="Drone View: Fly over St. Louis County" style="z-index:1;height:350px; max-height:350px; padding-top:116.6666666...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumClicking "Submit" inserts 2 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
<button type="button" class="js-yext-submit yxt-SearchBar-button" style="">
<div class="yxt-SearchBar-buttonImage component yxt-Answers-component" data-component="IconComponent" data-opts=Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.
mediumClicking "Skip to main content" inserts 2 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
<button class="uw-sl__item" data-uw-rm-ignore="true" data-uw-ignore-translate="true" lang="en-US" id="uw-skip-to-main"><span class="uw-sl__item__left" data-uw-ignore-translate="true"><span class="uw-s
Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.
mediumBroken link: https://stlouiscountymo.gov/contact-us/sms-terms-of-use returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/sms-terms-of-use">SMS - Terms of Use</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/awards returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/awards">Awards ✩✩✩✩✩</a>
mediumBroken link: https://stlouiscountymo.gov/services/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/">County Services</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us">Contact Us</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/privacy-policy returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/privacy-policy">Privacy Policy</a>
mediumBroken link: https://stlouiscountymo.gov/search-results/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/search-results/"></a>
mediumBroken link: https://stlouiscountymo.gov/st-louis-county-government/county-executive/county-executive-news/county-executive-requests-funding-for-violence-reduction-program/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/st-louis-county-government/county-executive/county-executive-news/county-executive-requests-funding-for-violence-reduction-program/"></a>
mediumBroken link: https://stlouiscountymo.gov/#MainContent returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/#MainContent">Skip to main content</a>
mediumBroken link: https://stlouiscountymo.gov/services returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services">Services</a>
mediumBroken link: https://stlouiscountymo.gov/services/pollen-and-mold/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/pollen-and-mold/">Pollen & Mold Count</a>
mediumBroken link: https://stlouiscountymo.gov/county-calendar/second-virtual-open-house-public-meeting-old-halls-ferry/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/county-calendar/second-virtual-open-house-public-meeting-old-halls-ferry/">Mar
30
</a>mediumBroken link: https://stlouiscountymo.gov/services/st-louis-county-claims-management/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/st-louis-county-claims-management/">File A Claim</a>
mediumBroken link: https://stlouiscountymo.gov/saint-louis-county-missouri-careers/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/saint-louis-county-missouri-careers/">County Jobs</a>
mediumBroken link: https://stlouiscountymo.gov/services/join-the-wait-line/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/join-the-wait-line/">Virtual Wait Line</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/terms-of-use returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/terms-of-use">Terms of Use</a>
mediumBroken link: https://stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/">@media screen and (max-width: 850px) {
#CountyLogo {
content:url("/sit</a>mediumBroken link: https://stlouiscountymo.gov/online-payments-and-forms/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/online-payments-and-forms/">Payments & Forms</a>
mediumBroken link: https://stlouiscountymo.gov/i-want-to/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/i-want-to/">I Want To...</a>
mediumMissing X-Frame-Options header
Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer
lowBroken link: https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx returned status 403 Forbidden after 1 attempts
<a href="https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx">Personal Property & Real Estate Taxes</a>
lowBroken link: https://taxpayments.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://taxpayments.stlouiscountymo.gov/">Tax Receipts</a>
lowBroken link: https://twitter.com/STLCounty returned status 403 Forbidden after 1 attempts
<a href="https://twitter.com/STLCounty"></a>
lowBroken link: https://stlcopa.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://stlcopa.stlouiscountymo.gov/">County Prosecutor</a>
lowBroken link: http://stlouiscountymo.gov/st-louis-county-government/county-council/ returned status 403 Forbidden after 1 attempts
<a href="http://stlouiscountymo.gov/st-louis-county-government/county-council/"></a>
/county-calendar/city-of-ballwin-document-shredding-event-on-site-shredding5/32findings
highInteractive controls must not be nested: Fix any of the following: Element has focusable descendantsWCAG 4.1.2
<div id="site-search-icon" class="text-center btn" style="padding:0;" role="button">
<a href="/search-results/"><img alt="search" src="/themes/default/modules/yext_search/assets/govsearchW.png...Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value
highFocus jumps backward from "Accessibility Menu" to "Skip to main content" (visual distance: 741px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
<a>Skip to main content</a>
Reorder elements in the DOM to match the visual layout.
highMissing Strict-Transport-Security header (HSTS)
Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Content-Type-Options: nosniff Add X-Frame-Options: DENY or SAMEORIGIN Add a Content-Security-Policy header with appropriate directives Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer
mediumPage has 3 "navigation" landmarks but only 2 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
<!-- 3 navigation landmarks, 2 labeled -->
Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="mura-object mura-twe..." data-object="container" data-objectid="C4C52A2D-5E7A-4064-9..." data-instanceid="02F2ECCC-1703-4278-9..." data-objectname="Container" data-objecticonclass="mi-squa...
Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumHeading levels should only increase by one: Fix any of the following: Heading order invalid
<h6 style="font-size: 1.25rem !important; font-family:lexend !important; text-align:center;">Government</h6>
Ensure the order of headings is semantically correct. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumDocument should have one main landmark: Fix all of the following: Document does not have a main landmark
<html lang="en" data-uw-w-loader="">
Ensure the document has a main landmark. See: https://www.w3.org/WAI/WCAG22/quickref/
mediumAll page content should be contained by landmarks: Fix any of the following: Some page content is not contained by landmarks
<div class="row">
<div class="col-sm-12">
<h1 class="department-header-name">City of Ballwin: Document Shredding Event (On-Site Shredding)</h1>
...Ensure all page content is contained by landmarks. See: https://www.w3.org/WAI/WCAG22/quickref/
medium"ADA Information" is visually at position 18 but receives focus at position 34 (drift: 16).WCAG 2.4.3
<a>ADA Information</a>
Align DOM order with visual presentation, or use tabIndex to match the visual sequence.
medium"Services" is visually at position 34 but receives focus at position 18 (drift: 16).WCAG 2.4.3
<a>Services</a>
Align DOM order with visual presentation, or use tabIndex to match the visual sequence.
mediumBroken link: https://stlouiscountymo.gov/st-louis-county-departments/public-health/birth-and-death-records/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/st-louis-county-departments/public-health/birth-and-death-records/">Birth or Death Records</a>
mediumBroken link: https://stlouiscountymo.gov/services/pollen-and-mold/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/pollen-and-mold/">Pollen & Mold Count</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/privacy-policy returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/privacy-policy">Privacy Policy</a>
mediumBroken link: https://stlouiscountymo.gov/search-results/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/search-results/"></a>
mediumBroken link: https://stlouiscountymo.gov/services/join-the-wait-line/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/join-the-wait-line/">Virtual Wait Line</a>
mediumBroken link: https://stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/">@media screen and (max-width: 850px) {
#CountyLogo {
content:url("/sit</a>mediumBroken link: https://stlouiscountymo.gov/services returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services">Services</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/terms-of-use returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/terms-of-use">Terms of Use</a>
mediumBroken link: https://stlouiscountymo.gov/services/st-louis-county-claims-management/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/st-louis-county-claims-management/">File A Claim</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/awards returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/awards">Awards ✩✩✩✩✩</a>
mediumBroken link: https://stlouiscountymo.gov/saint-louis-county-missouri-careers/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/saint-louis-county-missouri-careers/">County Jobs</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/sms-terms-of-use returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us/sms-terms-of-use">SMS - Terms of Use</a>
mediumBroken link: https://stlouiscountymo.gov/online-payments-and-forms/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/online-payments-and-forms/">Payments & Forms</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/contact-us">Contact Us</a>
mediumBroken link: https://stlouiscountymo.gov/county-calendar/city-of-ballwin-document-shredding-event-on-site-shredding5/#MainContent returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/county-calendar/city-of-ballwin-document-shredding-event-on-site-shredding5/#MainContent">Skip to main content</a>
mediumBroken link: https://stlouiscountymo.gov/i-want-to/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/i-want-to/">I Want To...</a>
mediumBroken link: https://stlouiscountymo.gov/services/ returned status 403 Forbidden after 1 attempts
<a href="https://stlouiscountymo.gov/services/">County Services</a>
lowBroken link: https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx returned status 403 Forbidden after 1 attempts
<a href="https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx">Personal Property & Real Estate Taxes</a>
lowBroken link: https://taxpayments.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://taxpayments.stlouiscountymo.gov/">Tax Receipts</a>
lowBroken link: https://stlcopa.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://stlcopa.stlouiscountymo.gov/">County Prosecutor</a>
lowBroken link: https://csportal.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
<a href="https://csportal.stlouiscountymo.gov/">Resident Customer Service</a>
lowBroken link: https://twitter.com/STLCounty returned status 403 Forbidden after 1 attempts
<a href="https://twitter.com/STLCounty"></a>
Methodology
The Sonde Score is a universal 0–1000 compliance index — think of it like a credit score for accessibility. Each finding is weighted by its impact on human access: a keyboard trap (critical) counts far more than a best-practice suggestion (low). The raw penalty is normalized per page so scores are comparable across sites of any size. A harmonic curve ensures every site gets a meaningful score — no zeros, no false perfection.
where S = sensitivity (750), P = Σ(weight × count), N = pages scanned
| Tier | Weight | Examples |
|---|---|---|
| Critical | 10 | Keyboard traps, missing page language |
| High | 3 | Missing alt text, insufficient contrast |
| Medium | 1 | Heading hierarchy, unclear link purpose |
| Low | 0.25 | Best-practice suggestions |
The Sonde Score is a living standard (v0.1). We’re building it in the open because accessibility is too important for closed-door decisions. Your expertise makes it better.
Enter Mission Control
Review raw findings data, track changes between scans, and contribute to Sonde’s open methodology.
Nominate a Site for the Daylight Index
Know a public website that should be on the accessibility leaderboard? Nominate it — we’ll scan it and publish the results.