St. Louis County (MO) — Score 828 | Sonde

Sonde

Accessibility Health Check

https://stlouisco.com

Strong

April 28, 2026

Provided free by Sonde

2pages201findings10critical14high167medium10low100.5avg/page1,627elements120with findings92.6%ECR2m 45stotal1m 23sper page

Strong

Executive Summary

2pages201findings100.5avg/page1,627elements120with findings92.6%ECR2m 45stotal1m 23sper page

Top Findings

Copy a direct link to share a finding Open a discussion to give feedback on a finding

criticalInteractive element with role="link" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
Element:
<!-- a11y: role="link" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="link" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="link" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="link" -->
Sonde Fix Plan

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
Element:
<img src="/sites/default/cache/file/F3EB1D8D-9705-4A94-B86E4C1DCECC0633_landscape.jpg" class="">
Sonde Fix Plan

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
Element:
<div class="yxt-AutoComplete-wrapper js-yxt-AutoComplete-wrapper" aria-expanded="false">
</div>
Sonde Fix Plan

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
Element:
<img src="/sites/default/cache/file/62CE4238-649F-4A44-928BC962E991D9C3_landscape.jpg" class="">
Sonde Fix Plan

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
Element:
<div class="words">Drone View: Fly over St. Louis County</div>
Sonde Fix Plan

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
Element:
<button class="slick-prev slick-arrow" aria-label="Previous" type="button" style="">Previous</button>
Sonde Fix Plan

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
Element:
<button class="slick-next slick-arrow" aria-label="Next" type="button" style="">Next</button>
Sonde Fix Plan

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
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

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
Element:
<div id="site-search-icon" class="text-center btn" style="padding:0;" role="button">
Sonde Fix Plan

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
Element:
<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"><...
Sonde Fix Plan

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
Element:
<a class="stretched-link" alt="County Council" href="http://stlouiscountymo.gov/st-louis-county-government/county-council/"></a>
Sonde Fix Plan

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
Element:
<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...
Sonde Fix Plan

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
Element:
<a class="stretched-link" alt="County Executive" href="https://stlouiscountymo.gov/st-louis-county-government/county-executive/"></a>
Sonde Fix Plan

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
Element:
<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...
Sonde Fix Plan

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
Element:
<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...
Sonde Fix Plan

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
Element:
<a></a>
Sonde Fix Plan

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
Element:
<a>Skip to main content</a>
Sonde Fix Plan

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
Element:
<a>Skip to main content</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highMissing Strict-Transport-Security header (HSTS)
Sonde Fix Plan

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
Element:
<!-- 2 navigation landmarks, 1 labeled -->
Sonde Fix Plan

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
Element:
<!-- 3 navigation landmarks, 2 labeled -->
Sonde Fix Plan

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
Page: /
Element:
<html lang="en" data-uw-w-loader="">
Sonde Fix Plan

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
Page: /
Element:
<div class="slick-slide slick-active" data-slick-index="1" aria-hidden="false" role="tabpanel" id="slick-slide01" style="width: 555px;">
Sonde Fix Plan

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
Page: /
Element:
<ul class="slick-dots" role="tablist" style="">
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<div class="mura-cta__item__content">
Sonde Fix Plan

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
Page: /
Element:
<div id="data-container" style="padding-bottom:1rem;">
Sonde Fix Plan

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
Page: /
Element:
<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>
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<div class="slick-slide slick-current slick-active" data-slick-index="0" aria-hidden="false" role="tabpanel" id="slick-slide00" style="width: 555px;">
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Element:
<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...
Sonde Fix Plan

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
Element:
<h6 style="font-size: 1.25rem !important; font-family:lexend !important; text-align:center;">Government</h6>
Sonde Fix Plan

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
Element:
<html lang="en" data-uw-w-loader="">
Sonde Fix Plan

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
Element:
<div class="row">
            <div class="col-sm-12">
                <h1 class="department-header-name">City of Ballwin: Document Shredding Event (On-Site Shredding)</h1>
                
           ...
Sonde Fix Plan

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
Element:
<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=
Sonde Fix Plan

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
Element:
<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
Sonde Fix Plan

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
Element:
<a>ADA Information</a>
Sonde Fix Plan

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
Element:
<a>Services</a>
Sonde Fix Plan

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
Page: /
Element:
<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
Page: /
Element:
<a href="https://stlouiscountymo.gov/contact-us/awards">Awards ✩✩✩✩✩</a>
mediumBroken link: https://stlouiscountymo.gov/services/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/services/">County Services</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us returned status 403 Forbidden after 1 attempts
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<a href="https://stlouiscountymo.gov/#MainContent">Skip to main content</a>
mediumBroken link: https://stlouiscountymo.gov/services returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/services">Services</a>
mediumBroken link: https://stlouiscountymo.gov/services/pollen-and-mold/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/services/pollen-and-mold/">Pollen &amp; 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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<a href="https://stlouiscountymo.gov/">@media screen and (max-width: 850px) {
    #CountyLogo {
      content:url(&quot;/sit</a>
mediumBroken link: https://stlouiscountymo.gov/online-payments-and-forms/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/online-payments-and-forms/">Payments &amp; Forms</a>
mediumBroken link: https://stlouiscountymo.gov/i-want-to/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<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
Element:
<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
Element:
<a href="https://stlouiscountymo.gov/services/pollen-and-mold/">Pollen &amp; Mold Count</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/privacy-policy returned status 403 Forbidden after 1 attempts
Element:
<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
Element:
<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
Element:
<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
Element:
<a href="https://stlouiscountymo.gov/">@media screen and (max-width: 850px) {
    #CountyLogo {
      content:url(&quot;/sit</a>
mediumBroken link: https://stlouiscountymo.gov/services returned status 403 Forbidden after 1 attempts
Element:
<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
Element:
<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
Element:
<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
Element:
<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
Element:
<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
Element:
<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
Element:
<a href="https://stlouiscountymo.gov/online-payments-and-forms/">Payments &amp; Forms</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us returned status 403 Forbidden after 1 attempts
Element:
<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
Element:
<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
Element:
<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
Element:
<a href="https://stlouiscountymo.gov/services/">County Services</a>
mediumMissing X-Frame-Options header
Page: /
Sonde Fix Plan

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
Page: /
Element:
<a href="https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx">Personal Property &amp; Real Estate Taxes</a>
lowBroken link: https://taxpayments.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://taxpayments.stlouiscountymo.gov/">Tax Receipts</a>
lowBroken link: https://twitter.com/STLCounty returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://twitter.com/STLCounty"></a>
lowBroken link: https://stlcopa.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<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
Page: /
Element:
<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
Element:
<a href="https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx">Personal Property &amp; Real Estate Taxes</a>
lowBroken link: https://taxpayments.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Element:
<a href="https://taxpayments.stlouiscountymo.gov/">Tax Receipts</a>
lowBroken link: https://stlcopa.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Element:
<a href="https://stlcopa.stlouiscountymo.gov/">County Prosecutor</a>
lowBroken link: https://csportal.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Element:
<a href="https://csportal.stlouiscountymo.gov/">Resident Customer Service</a>
lowBroken link: https://twitter.com/STLCounty returned status 403 Forbidden after 1 attempts
Element:
<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
Element:
<!-- a11y: role="link" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="link" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="link" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="link" -->
Sonde Fix Plan

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
Element:
<img src="/sites/default/cache/file/F3EB1D8D-9705-4A94-B86E4C1DCECC0633_landscape.jpg" class="">
Sonde Fix Plan

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
Element:
<div class="yxt-AutoComplete-wrapper js-yxt-AutoComplete-wrapper" aria-expanded="false">
</div>
Sonde Fix Plan

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
Element:
<img src="/sites/default/cache/file/62CE4238-649F-4A44-928BC962E991D9C3_landscape.jpg" class="">
Sonde Fix Plan

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
Element:
<div class="words">Drone View: Fly over St. Louis County</div>
Sonde Fix Plan

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
Element:
<button class="slick-prev slick-arrow" aria-label="Previous" type="button" style="">Previous</button>
Sonde Fix Plan

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
Element:
<button class="slick-next slick-arrow" aria-label="Next" type="button" style="">Next</button>
Sonde Fix Plan

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
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

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
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

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
Element:
<div id="site-search-icon" class="text-center btn" style="padding:0;" role="button">
Sonde Fix Plan

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
Element:
<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"><...
Sonde Fix Plan

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
Element:
<a class="stretched-link" alt="County Council" href="http://stlouiscountymo.gov/st-louis-county-government/county-council/"></a>
Sonde Fix Plan

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
Element:
<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...
Sonde Fix Plan

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
Element:
<a class="stretched-link" alt="County Executive" href="https://stlouiscountymo.gov/st-louis-county-government/county-executive/"></a>
Sonde Fix Plan

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
Element:
<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...
Sonde Fix Plan

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
Element:
<a></a>
Sonde Fix Plan

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
Element:
<a>Skip to main content</a>
Sonde Fix Plan

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
Element:
<!-- 2 navigation landmarks, 1 labeled -->
Sonde Fix Plan

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
Page: /
Element:
<html lang="en" data-uw-w-loader="">
Sonde Fix Plan

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
Page: /
Element:
<div class="slick-slide slick-active" data-slick-index="1" aria-hidden="false" role="tabpanel" id="slick-slide01" style="width: 555px;">
Sonde Fix Plan

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
Page: /
Element:
<ul class="slick-dots" role="tablist" style="">
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<div class="mura-cta__item__content">
Sonde Fix Plan

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
Page: /
Element:
<div id="data-container" style="padding-bottom:1rem;">
Sonde Fix Plan

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
Page: /
Element:
<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>
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Page: /
Element:
<div class="slick-slide slick-current slick-active" data-slick-index="0" aria-hidden="false" role="tabpanel" id="slick-slide00" style="width: 555px;">
Sonde Fix Plan

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
Page: /
Element:
<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...
Sonde Fix Plan

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
Element:
<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=
Sonde Fix Plan

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
Element:
<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
Sonde Fix Plan

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
Page: /
Element:
<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
Page: /
Element:
<a href="https://stlouiscountymo.gov/contact-us/awards">Awards ✩✩✩✩✩</a>
mediumBroken link: https://stlouiscountymo.gov/services/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/services/">County Services</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us returned status 403 Forbidden after 1 attempts
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<a href="https://stlouiscountymo.gov/#MainContent">Skip to main content</a>
mediumBroken link: https://stlouiscountymo.gov/services returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/services">Services</a>
mediumBroken link: https://stlouiscountymo.gov/services/pollen-and-mold/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/services/pollen-and-mold/">Pollen &amp; 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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<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
Page: /
Element:
<a href="https://stlouiscountymo.gov/">@media screen and (max-width: 850px) {
    #CountyLogo {
      content:url(&quot;/sit</a>
mediumBroken link: https://stlouiscountymo.gov/online-payments-and-forms/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/online-payments-and-forms/">Payments &amp; Forms</a>
mediumBroken link: https://stlouiscountymo.gov/i-want-to/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://stlouiscountymo.gov/i-want-to/">I Want To...</a>
mediumMissing X-Frame-Options header
Page: /
Sonde Fix Plan

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
Page: /
Element:
<a href="https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx">Personal Property &amp; Real Estate Taxes</a>
lowBroken link: https://taxpayments.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://taxpayments.stlouiscountymo.gov/">Tax Receipts</a>
lowBroken link: https://twitter.com/STLCounty returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://twitter.com/STLCounty"></a>
lowBroken link: https://stlcopa.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Page: /
Element:
<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
Page: /
Element:
<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
Element:
<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...
Sonde Fix Plan

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
Element:
<a>Skip to main content</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highMissing Strict-Transport-Security header (HSTS)
Sonde Fix Plan

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
Element:
<!-- 3 navigation landmarks, 2 labeled -->
Sonde Fix Plan

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
Element:
<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...
Sonde Fix Plan

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
Element:
<h6 style="font-size: 1.25rem !important; font-family:lexend !important; text-align:center;">Government</h6>
Sonde Fix Plan

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
Element:
<html lang="en" data-uw-w-loader="">
Sonde Fix Plan

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
Element:
<div class="row">
            <div class="col-sm-12">
                <h1 class="department-header-name">City of Ballwin: Document Shredding Event (On-Site Shredding)</h1>
                
           ...
Sonde Fix Plan

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
Element:
<a>ADA Information</a>
Sonde Fix Plan

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
Element:
<a>Services</a>
Sonde Fix Plan

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
Element:
<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
Element:
<a href="https://stlouiscountymo.gov/services/pollen-and-mold/">Pollen &amp; Mold Count</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us/privacy-policy returned status 403 Forbidden after 1 attempts
Element:
<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
Element:
<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
Element:
<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
Element:
<a href="https://stlouiscountymo.gov/">@media screen and (max-width: 850px) {
    #CountyLogo {
      content:url(&quot;/sit</a>
mediumBroken link: https://stlouiscountymo.gov/services returned status 403 Forbidden after 1 attempts
Element:
<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
Element:
<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
Element:
<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
Element:
<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
Element:
<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
Element:
<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
Element:
<a href="https://stlouiscountymo.gov/online-payments-and-forms/">Payments &amp; Forms</a>
mediumBroken link: https://stlouiscountymo.gov/contact-us returned status 403 Forbidden after 1 attempts
Element:
<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
Element:
<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
Element:
<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
Element:
<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
Element:
<a href="https://revenue.stlouisco.com/Collection/PayTaxes/default.aspx">Personal Property &amp; Real Estate Taxes</a>
lowBroken link: https://taxpayments.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Element:
<a href="https://taxpayments.stlouiscountymo.gov/">Tax Receipts</a>
lowBroken link: https://stlcopa.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Element:
<a href="https://stlcopa.stlouiscountymo.gov/">County Prosecutor</a>
lowBroken link: https://csportal.stlouiscountymo.gov/ returned status 403 Forbidden after 1 attempts
Element:
<a href="https://csportal.stlouiscountymo.gov/">Resident Customer Service</a>
lowBroken link: https://twitter.com/STLCounty returned status 403 Forbidden after 1 attempts
Element:
<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.

Score = round(1000 × S / (S + P/N))

where S = sensitivity (750), P = Σ(weight × count), N = pages scanned

TierWeightExamples
Critical10Keyboard traps, missing page language
High3Missing alt text, insufficient contrast
Medium1Heading hierarchy, unclear link purpose
Low0.25Best-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.

Nominate a Site →

This report is a health check, not a verdict. Every website has room to improve.

Disclaimer: This report presents the results of automated accessibility analysis and is provided free of charge, as-is, without warranty of any kind. Findings are generated by software, not by human accessibility experts, and may contain errors or omissions. Automated testing can detect approximately 30–40% of accessibility issues; manual expert evaluation is recommended for complete conformance assessment. Scores reflect algorithmic analysis under a published methodology open to public review — they are not legal determinations of compliance. Results reflect the state of the website at the time of scanning and may change as the site is updated. Nothing in this report constitutes legal advice. Sonde assumes no liability for decisions made based on these results.

Compliance methodology: NIST 800-53 Rev 5 (usnistgov/oscal-content v1.4.0, catalog 5.2.0) · NIST PRIVACY overlay (usnistgov/oscal-content v1.4.0, catalog 5.2.0) · FedRAMP Rev 5 (OSCAL-Foundation/fedramp-resources a6b85ed451, catalog fedramp-3.0.0rc1-oscal-1.1.2).