Accessibility Health Check
https://www.dsm.city
Excellent
https://daylight.sonde.tech/usgov/dsm-city/
City of Des Moines
Excellent
Executive Summary
Top Findings
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-23" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-27" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-61" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-28" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 8 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-33" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 3 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-35" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-39" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-43" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-46" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 3 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-53" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 3 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-60" data-sonde-contrast-s...
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "30" WCAG 1.4.3
<a title="Go to April 30, 2026" data-navlink="" tabindex="0" id="fc-dom-10" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-25" data-sonde-contrast-state-owned="true">
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "26" WCAG 1.4.3
<a title="Go to April 26, 2026" data-navlink="" tabindex="0" id="fc-dom-2" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-20" data-sonde-contrast-state-owned="true">2
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "27" WCAG 1.4.3
<a title="Go to April 27, 2026" data-navlink="" tabindex="0" id="fc-dom-4" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-21" data-sonde-contrast-state-owned="true">2
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "28" WCAG 1.4.3
<a title="Go to April 28, 2026" data-navlink="" tabindex="0" id="fc-dom-6" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-22" data-sonde-contrast-state-owned="true">2
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "29" WCAG 1.4.3
<a title="Go to April 29, 2026" data-navlink="" tabindex="0" id="fc-dom-8" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-24" data-sonde-contrast-state-owned="true">2
critical Insufficient color contrast: 1.00:1 (required: 3:1 for large text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "About DSM" WCAG 1.4.3
<h3 class="title">About DSM</h3>
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Empty heading (role="heading"). Headings must contain text for screen reader navigation to work. WCAG 1.3.1
<!-- a11y: role="heading" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns2-item5" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns2-item6" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns2-item7" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns2-item8" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns3-item3" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns3-item4" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns3-item5" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns4-item1" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns4-item2" aria-hidden="true" tabindex="-1">
high Elements must meet minimum color contrast ratio thresholds: Fix any of the following: Element has insufficient color contrast of 1.98 (foreground color: #b8b8b8, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1 WCAG 1.4.3
<a title="Go to April 27, 2026" data-navlink="" tabindex="0" id="fc-dom-4" class="fc-daygrid-day-number">27</a>
high Elements must meet minimum color contrast ratio thresholds: Fix any of the following: Element has insufficient color contrast of 1.98 (foreground color: #b8b8b8, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1 WCAG 1.4.3
<a title="Go to April 29, 2026" data-navlink="" tabindex="0" id="fc-dom-8" class="fc-daygrid-day-number">29</a>
high Elements must meet minimum color contrast ratio thresholds: Fix any of the following: Element has insufficient color contrast of 1.98 (foreground color: #b8b8b8, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1 WCAG 1.4.3
<a title="Go to April 30, 2026" data-navlink="" tabindex="0" id="fc-dom-10" class="fc-daygrid-day-number">30</a>
high Elements must meet minimum color contrast ratio thresholds: Fix any of the following: Element has insufficient color contrast of 1.98 (foreground color: #b8b8b8, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1 WCAG 1.4.3
<a title="Go to April 26, 2026" data-navlink="" tabindex="0" id="fc-dom-2" class="fc-daygrid-day-number">26</a>
high Insufficient color contrast: 2.08:1 (required: 4.5:1 for normal text). Foreground: rgb(2, 29, 113), background: rgb(172, 26, 47). Text: "share this page" WCAG 1.4.3
<span class="sr-only">share this page</span>
high Insufficient color contrast: 3.69:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(172, 120, 114). Text: "City Council" WCAG 1.4.3
<a href="#" class="calendar-name-filter" data-calendar-id="5" rel="noreferrer noopener" data-sonde-contrast-state-id="sonde-contrast-state-11" data-sonde-contrast-state-owned="true">City Council</a>
high Insufficient color contrast: 2.82:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(107, 168, 111). Text: "7a" WCAG 1.4.3
<div class="fc-event-time">7a</div>
high Insufficient color contrast: 2.82:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(107, 168, 111). Text: "Orange Week Recycling" WCAG 1.4.3
<div class="fc-event-title fc-sticky">Orange Week Recycling</div>
high Insufficient color contrast: 2.08:1 (required: 4.5:1 for normal text). Foreground: rgb(2, 29, 113), background: rgb(172, 26, 47). Text: "share this page" WCAG 1.4.3
<span class="sr-only">share this page</span>
high Insufficient color contrast: 2.08:1 (required: 4.5:1 for normal text). Foreground: rgb(2, 29, 113), background: rgb(172, 26, 47). Text: "share this page" WCAG 1.4.3
<span class="sr-only">share this page</span>
high Insufficient color contrast: 2.08:1 (required: 4.5:1 for normal text). Foreground: rgb(2, 29, 113), background: rgb(172, 26, 47). Text: "share this page" WCAG 1.4.3
<span class="sr-only">share this page</span>
high Insufficient color contrast: 2.08:1 (required: 4.5:1 for normal text). Foreground: rgb(2, 29, 113), background: rgb(172, 26, 47). Text: "share this page" WCAG 1.4.3
<span class="sr-only">share this page</span>
high Console error: SyntaxError: Unexpected token ')'
https://www.dsm.city/calendar.php:814mediumhigh Focus jumps backward from "Login" to "Website Feedback" (visual distance: 613px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<button>Website Feedback</button>
high Focus jumps backward from "Police" to "Careers" (visual distance: 404px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>Careers</a>
high Focus jumps backward from "Next Slide" to "May 22, 2026" (visual distance: 1216px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>May 22, 2026</a>
high Focus jumps backward from "May 13, 2026" to "May 05, 2026" (visual distance: 386px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>May 05, 2026</a>
high Focus jumps backward from "Accessibility Menu" to "Visit Relocation Information page" (visual distance: 1083px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>Visit Relocation Information page</a>
high Focus jumps backward from "Login" to "Website Feedback" (visual distance: 613px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<button>Website Feedback</button>
high Focus jumps backward from "Accessibility Menu" to "Visit Relocation Information page" (visual distance: 1083px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>Visit Relocation Information page</a>
high Focus jumps backward from "Strategic Efforts" to "share this page" (visual distance: 1208px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<button>share this page</button>
high Missing Strict-Transport-Security header (HSTS)
high Missing Strict-Transport-Security header (HSTS)
high Missing Strict-Transport-Security header (HSTS)
high Missing Strict-Transport-Security header (HSTS)
high Missing Strict-Transport-Security header (HSTS)
high Missing Strict-Transport-Security header (HSTS)
medium Page has 2 "main" landmarks but only 0 have distinct labels. Screen reader users cannot distinguish between them. WCAG 1.3.1
<!-- 2 main landmarks, 0 labeled -->
medium Page 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 -->
medium Focusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose. WCAG 4.1.2
<!-- a11y: role="generic" -->
medium Focusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose. WCAG 4.1.2
<!-- a11y: role="generic" -->
medium Focusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose. WCAG 4.1.2
<!-- a11y: role="generic" -->
medium Focusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose. WCAG 4.1.2
<!-- a11y: role="generic" -->
medium Page has 2 "main" landmarks but only 0 have distinct labels. Screen reader users cannot distinguish between them. WCAG 1.3.1
<!-- 2 main landmarks, 0 labeled -->
medium Page 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 -->
medium Page has 2 "main" landmarks but only 0 have distinct labels. Screen reader users cannot distinguish between them. WCAG 1.3.1
<!-- 2 main landmarks, 0 labeled -->
medium Page 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 -->
medium Page has 2 "main" landmarks but only 0 have distinct labels. Screen reader users cannot distinguish between them. WCAG 1.3.1
<!-- 2 main landmarks, 0 labeled -->
medium Page has 2 "main" landmarks but only 0 have distinct labels. Screen reader users cannot distinguish between them. WCAG 1.3.1
<!-- 2 main landmarks, 0 labeled -->
medium Main landmark should not be contained in another landmark: Fix any of the following: The main landmark is contained in another landmark.
<main id="freeform-main" class="has-edit-buttons yes-has-edit-buttons">
medium Document should not have more than one main landmark: Fix any of the following: Document has more than one main landmark
<main id="main">
medium Main landmark should not be contained in another landmark: Fix any of the following: The main landmark is contained in another landmark.
<main id="freeform-main" class="has-edit-buttons yes-has-edit-buttons">
medium Document should not have more than one main landmark: Fix any of the following: Document has more than one main landmark
<main id="main">
medium Main landmark should not be contained in another landmark: Fix any of the following: The main landmark is contained in another landmark.
<main id="freeform-main" class="has-edit-buttons yes-has-edit-buttons">
medium Document should not have more than one main landmark: Fix any of the following: Document has more than one main landmark
<main id="main">
medium Main landmark should not be contained in another landmark: Fix any of the following: The main landmark is contained in another landmark.
<main id="freeform-main" class="has-edit-buttons yes-has-edit-buttons">
medium Document should not have more than one main landmark: Fix any of the following: Document has more than one main landmark
<main id="main">
medium Main landmark should not be contained in another landmark: Fix any of the following: The main landmark is contained in another landmark.
<main id="freeform-main" class="has-edit-buttons yes-has-edit-buttons">
medium Document should not have more than one main landmark: Fix any of the following: Document has more than one main landmark
<main id="main">
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium Insufficient color contrast: 4.33:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(29, 53, 87). Effective opacity: 0.50. Text: "today" WCAG 1.4.3
<button type="button" title="This month" disabled="" aria-pressed="false" class="fc-today-button fc-button fc-button-primary">today</button>
medium The same link functionality is identified as "Doing Business" on https://www.dsm.city/ and "City of Des Moines Iowa Logo Homepage" on https://www.dsm.city/business/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="./index.php" id="logo" aria-label="City of Des Moines Iowa Logo Homepage" rel="noreferrer noopener"> <svg width="219" height="76" viewBox="0 0 219 76" fill="none" xmlns="http://www.w3.org/2000/svg" alt="City of Des Moines logo in full color"> <path d="M68.8429 72.7829C67.4982 74.0368 65.8449 74.6637 63.8775 74.6637H60.3781V60.536H63.8775C65.8449 60.536 67.4982 61.1575 68.8429 62.4058C70.1876 63.6541 70.8544 65.3864 70.8544 67.6026C70.8599 69.8023 70.1876 71.5291 68.8429 72.7
medium The same link functionality is identified as "Skip to main content" on https://www.dsm.city/ and "Data" on https://www.dsm.city/business/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a class="menuA level2 menuHidden" href="https://data.dsm.city/" target="_new" rel="noreferrer noopener">Data</a>
medium The same button functionality is identified as "Previous Slide" on https://www.dsm.city/ and "Next Slide" on https://www.dsm.city/business/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<button type="button" data-controls="next" aria-controls="tns1" aria-label="Next Slide"><i class="right" aria-hidden="true"></i></button>
medium The same link functionality is identified as "Meetings" on https://www.dsm.city/ and "City Council Meetings" on https://www.dsm.city/calendar.php?view=month&month=05&day=01&year=2026. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a class="menuA level2 menuHidden" href="government/city_council/meetings/index.php" target="_self" rel="noreferrer noopener">City Council Meetings</a>
medium The same button functionality is identified as "Previous Slide" on https://www.dsm.city/ and "Next Slide" on https://www.dsm.city/calendar.php?view=month&month=05&day=01&year=2026. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<button type="button" data-controls="next" aria-controls="tns1" aria-label="Next Slide"><i class="right" aria-hidden="true"></i></button>
medium The same link functionality is identified as "Living & Visiting" on https://www.dsm.city/ and "City of Des Moines Iowa Logo Homepage" on https://www.dsm.city/community/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="./index.php" id="logo" aria-label="City of Des Moines Iowa Logo Homepage" rel="noreferrer noopener"> <svg width="219" height="76" viewBox="0 0 219 76" fill="none" xmlns="http://www.w3.org/2000/svg" alt="City of Des Moines logo in full color"> <path d="M68.8429 72.7829C67.4982 74.0368 65.8449 74.6637 63.8775 74.6637H60.3781V60.536H63.8775C65.8449 60.536 67.4982 61.1575 68.8429 62.4058C70.1876 63.6541 70.8544 65.3864 70.8544 67.6026C70.8599 69.8023 70.1876 71.5291 68.8429 72.7
medium The same link functionality is identified as "Skip to main content" on https://www.dsm.city/ and "Data" on https://www.dsm.city/community/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a class="menuA level2 menuHidden" href="https://data.dsm.city/" target="_new" rel="noreferrer noopener">Data</a>
medium The same button functionality is identified as "Previous Slide" on https://www.dsm.city/ and "Next Slide" on https://www.dsm.city/community/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<button type="button" data-controls="next" aria-controls="tns1" aria-label="Next Slide"><i class="right" aria-hidden="true"></i></button>
medium The same link functionality is identified as "City Departments" on https://www.dsm.city/ and "City of Des Moines Iowa Logo Homepage" on https://www.dsm.city/departments/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="./index.php" id="logo" aria-label="City of Des Moines Iowa Logo Homepage" rel="noreferrer noopener"> <svg width="219" height="76" viewBox="0 0 219 76" fill="none" xmlns="http://www.w3.org/2000/svg" alt="City of Des Moines logo in full color"> <path d="M68.8429 72.7829C67.4982 74.0368 65.8449 74.6637 63.8775 74.6637H60.3781V60.536H63.8775C65.8449 60.536 67.4982 61.1575 68.8429 62.4058C70.1876 63.6541 70.8544 65.3864 70.8544 67.6026C70.8599 69.8023 70.1876 71.5291 68.8429 72.7
medium The same link functionality is identified as "Skip to main content" on https://www.dsm.city/ and "Data" on https://www.dsm.city/departments/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a class="menuA level2 menuHidden" href="https://data.dsm.city/" target="_new" rel="noreferrer noopener">Data</a>
medium The same button functionality is identified as "Previous Slide" on https://www.dsm.city/ and "Next Slide" on https://www.dsm.city/departments/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<button type="button" data-controls="next" aria-controls="tns1" aria-label="Next Slide"><i class="right" aria-hidden="true"></i></button>
medium The same link functionality is identified as "Your Government" on https://www.dsm.city/ and "City of Des Moines Iowa Logo Homepage" on https://www.dsm.city/government/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="./index.php" id="logo" aria-label="City of Des Moines Iowa Logo Homepage" rel="noreferrer noopener"> <svg width="219" height="76" viewBox="0 0 219 76" fill="none" xmlns="http://www.w3.org/2000/svg" alt="City of Des Moines logo in full color"> <path d="M68.8429 72.7829C67.4982 74.0368 65.8449 74.6637 63.8775 74.6637H60.3781V60.536H63.8775C65.8449 60.536 67.4982 61.1575 68.8429 62.4058C70.1876 63.6541 70.8544 65.3864 70.8544 67.6026C70.8599 69.8023 70.1876 71.5291 68.8429 72.7
medium The same link functionality is identified as "Skip to main content" on https://www.dsm.city/ and "Data" on https://www.dsm.city/government/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a class="menuA level2 menuHidden" href="https://data.dsm.city/" target="_new" rel="noreferrer noopener">Data</a>
medium The same button functionality is identified as "Previous Slide" on https://www.dsm.city/ and "Next Slide" on https://www.dsm.city/government/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<button type="button" data-controls="next" aria-controls="tns1" aria-label="Next Slide"><i class="right" aria-hidden="true"></i></button>
medium The same link functionality is identified as "City Services" on https://www.dsm.city/ and "City of Des Moines Iowa Logo Homepage" on https://www.dsm.city/services/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="./index.php" id="logo" aria-label="City of Des Moines Iowa Logo Homepage" rel="noreferrer noopener"> <svg width="219" height="76" viewBox="0 0 219 76" fill="none" xmlns="http://www.w3.org/2000/svg" alt="City of Des Moines logo in full color"> <path d="M68.8429 72.7829C67.4982 74.0368 65.8449 74.6637 63.8775 74.6637H60.3781V60.536H63.8775C65.8449 60.536 67.4982 61.1575 68.8429 62.4058C70.1876 63.6541 70.8544 65.3864 70.8544 67.6026C70.8599 69.8023 70.1876 71.5291 68.8429 72.7
medium The same link functionality is identified as "Skip to main content" on https://www.dsm.city/ and "Data" on https://www.dsm.city/services/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a class="menuA level2 menuHidden" href="https://data.dsm.city/" target="_new" rel="noreferrer noopener">Data</a>
medium The same button functionality is identified as "Previous Slide" on https://www.dsm.city/ and "Next Slide" on https://www.dsm.city/services/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<button type="button" data-controls="next" aria-controls="tns1" aria-label="Next Slide"><i class="right" aria-hidden="true"></i></button>
medium "(515) 283-4500" is visually at position 37 but receives focus at position 23 (drift: 14). WCAG 2.4.3
<a>(515) 283-4500</a>
medium Broken link: https://www.dsm.city/departments/development_services/economic_development/small_business_assistance.php returned status 404 Not Found after 1 attempts
<a href="https://www.dsm.city/departments/development_services/economic_development/small_business_assistance.php">Small Business Resources</a>
medium Element overflows viewport by 298px at Desktop (1920px width). WCAG Sonde responsive contract
<li class="tiny-item tns-item" id="tns2-item7" aria-hidden="true" tabindex="-1">
<medium Element overflows viewport by 528px at Desktop (1920px width). WCAG Sonde responsive contract
<li class="tiny-item tns-item" id="tns2-item8" aria-hidden="true" tabindex="-1">
<a href="./departments/development_servicmedium Element overflows viewport by 805px at Laptop (1366px width). WCAG Sonde responsive contract
<ul class="tiny-carousel tns-slider tns-carousel tns-subpixel tns-calc tns-horizontal" data-tiny-items="6" id="tns2" style="transition-duration: 0s; transform: translate3d(0%, 0px, 0px);">
medium Element overflows viewport by 115px at Laptop (1366px width). WCAG Sonde responsive contract
<li class="tiny-item tns-item" id="tns2-item5" aria-hidden="true" tabindex="-1">
<a href="./departments/human_resources/camedium Element overflows viewport by 345px at Laptop (1366px width). WCAG Sonde responsive contract
<li class="tiny-item tns-item" id="tns2-item6" aria-hidden="true" tabindex="-1">
<a href="./departments/public_works/streemedium Element overflows viewport by 105px at Laptop (1366px width). WCAG Sonde responsive contract
<a href="./departments/human_resources/careers/index.php" class="qlinkBx" rel="noreferrer noopener">
medium Element overflows viewport by 26px at Laptop (1366px width). WCAG Sonde responsive contract
<div class="qIco"><span class="ico" style="background-image:url('set_site_up/qlinks/qlink1.png?t=202508221049120');"></span></div>medium Element overflows viewport by 32px at Laptop (1366px width). WCAG Sonde responsive contract
<h2 class="title" style="height: 43.1875px;">Careers</h2>
medium Element overflows viewport by 26px at Laptop (1366px width). WCAG Sonde responsive contract
<span class="ico" style="background-image:url('set_site_up/qlinks/qlink1.png?t=202508221049120');"></span>medium Element overflows viewport by 453px at Large monitor (2560px width). WCAG Sonde responsive contract
<ul class="tiny-carousel tns-slider tns-carousel tns-subpixel tns-calc tns-horizontal" data-tiny-items="5" id="tns3" style="transition-duration: 0s; transform: translate3d(0%, 0px, 0px);">
medium Element overflows viewport by 66px at Large monitor (2560px width). WCAG Sonde responsive contract
<li class="tiny-item tns-item" id="tns3-item4" aria-hidden="true" tabindex="-1">
<a href="news_detail_T21_R550.php" class="newsPill" rel="medium Element overflows viewport by 51px at Large monitor (2560px width). WCAG Sonde responsive contract
<a href="news_detail_T21_R550.php" class="newsPill" rel="noreferrer noopener">
medium Element overflows viewport by 51px at Large monitor (2560px width). WCAG Sonde responsive contract
<div class="newsImg" style="background-image:url('Images/News/2026/04%20-%20April/RCRC%20News%20Image.png?t=202604291757060');"></div>medium Interactive control "a.button.viewCal" is only 40px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.button.viewCal>
medium Element overflows viewport by 897px at TV / wall display (3840px width). WCAG Sonde responsive contract
<div class="vidBx" style="background-image:url('Images/News/2025/12/City%20Source%20Press%20Release_360x315.jpg?t=202512021701430');">
<a class="plyBtn" href="./" medium Element overflows viewport by 12px at Ultrawide (3440px width). WCAG Sonde responsive contract
<li class="tiny-item tns-item" id="tns3-item5" aria-hidden="true" tabindex="-1">
<a href="news_detail_T21_R544.php" class="newsPill" rel="medium Element overflows viewport by 1098px at Ultrawide (3440px width). WCAG Sonde responsive contract
<ul class="tiny-carousel tns-slider tns-carousel tns-subpixel tns-calc tns-horizontal" data-tiny-items="5" id="tns4" style="transition-duration: 0s; transform: translate3d(0%, 0px, 0px);">
medium Element overflows viewport by 1097px at Ultrawide (3440px width). WCAG Sonde responsive contract
<li class="tiny-item tns-item" id="tns4-item2" aria-hidden="true" tabindex="-1">
<div class="spotInner">
<div class="spotInfo">
<h3 class="title">Readmedium Element overflows viewport by 238px at Ultrawide (3440px width). WCAG Sonde responsive contract
<a href="https://indd.adobe.com/view/f228a2a8-8b8d-4bc5-aca7-8658a69384e1" class="button" target="_blank" rel="noopener noreferrer">
Read the Winter 2025 Edition <medium Element overflows viewport by 397px at Ultrawide (3440px width). WCAG Sonde responsive contract
<div class="spotInfo">
<h3 class="title">Read City Source</h3>
<div class="txt"><p>Timely information for residents, visitors, and community members who live, work,medium Element overflows viewport by 1097px at Ultrawide (3440px width). WCAG Sonde responsive contract
<div class="spotInner">
<div class="spotInfo">
<h3 class="title">Read City Source</h3>
<div class="txt"><p>Timely information for residents, visitomedium Element overflows viewport by 397px at Ultrawide (3440px width). WCAG Sonde responsive contract
<div class="txt"><p>Timely information for residents, visitors, and community members who live, work, and play in the City of Des Moines. Updated each quarter with important dates and events, municipa
medium Element overflows viewport by 397px at Ultrawide (3440px width). WCAG Sonde responsive contract
<h3 class="title">Read City Source</h3>
medium Element overflows viewport by 397px at Ultrawide (3440px width). WCAG Sonde responsive contract
<p>Timely information for residents, visitors, and community members who live, work, and play in the City of Des Moines. Updated each quarter with important dates and events, municipal service informa
medium Primary content surface "main" is only 1130px wide at Large monitor (2560px viewport). Sonde responsive contract expects ≥ 1152px on this tier. WCAG Sonde responsive contract
<main>
medium Interactive control "a.calendar-name-filter" is only 40px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.calendar-name-filter>
medium Interactive control "a.calendar-tab-filter" is only 40px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.calendar-tab-filter>
medium Content clipped by 19px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<label for="calendar-search" class="sr-only">Search</label>
medium Interactive control "a" is only 17px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a>
medium Interactive control "a.alert-more" is only 24px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.alert-more>
medium Interactive control "a.link" is only 35px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.link>
medium Interactive control "button.alert-closebtn" is only 24px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<button.alert-closebtn>
medium Interactive control "button.share-btn.floating-share-btn" is only 40px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<button.share-btn.floating-share-btn>
medium Content clipped by 7px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<section id="slider" class="tiny-slider-wrap has-edit-buttons yes-has-edit-buttons" aria-label="Page Banner"> <div class="center-center"> <div class="rz-btns-container"> <script langu
medium Content clipped by 20px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<span class="sr-only">share this page</span>
low Headings should not be empty: 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 attribute
<h2 class="tile-title" id="page-title0"></h2>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/ returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/business/index.php returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/business/index.php">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/calendar.php returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/calendar.php">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/community/index.php returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/community/index.php">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/departments/index.php returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/departments/index.php">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/government/index.php returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/government/index.php">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/services/index.php returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/services/index.php">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
Best Page Fix Opportunities
/calendar.php?view=month&month=05&day=01&year=202647findings
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-23" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-27" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-61" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-28" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 8 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-33" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 3 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-35" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-39" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-43" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 2 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-46" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 3 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-53" data-sonde-contrast-s...
critical Elements must only use supported ARIA attributes: Fix all of the following: ARIA attribute is not allowed: aria-expanded="false" WCAG 4.1.2
<a tabindex="0" title="Show 3 more events" aria-expanded="false" aria-controls="" class="fc-daygrid-more-link fc-more-link" data-sonde-contrast-state-id="sonde-contrast-state-60" data-sonde-contrast-s...
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "30" WCAG 1.4.3
<a title="Go to April 30, 2026" data-navlink="" tabindex="0" id="fc-dom-10" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-25" data-sonde-contrast-state-owned="true">
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "26" WCAG 1.4.3
<a title="Go to April 26, 2026" data-navlink="" tabindex="0" id="fc-dom-2" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-20" data-sonde-contrast-state-owned="true">2
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "27" WCAG 1.4.3
<a title="Go to April 27, 2026" data-navlink="" tabindex="0" id="fc-dom-4" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-21" data-sonde-contrast-state-owned="true">2
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "28" WCAG 1.4.3
<a title="Go to April 28, 2026" data-navlink="" tabindex="0" id="fc-dom-6" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-22" data-sonde-contrast-state-owned="true">2
critical Insufficient color contrast: 1.79:1 (required: 4.5:1 for normal text). Foreground: rgb(29, 53, 87), background: rgb(255, 255, 255). Effective opacity: 0.30. Text: "29" WCAG 1.4.3
<a title="Go to April 29, 2026" data-navlink="" tabindex="0" id="fc-dom-8" class="fc-daygrid-day-number" data-sonde-contrast-state-id="sonde-contrast-state-24" data-sonde-contrast-state-owned="true">2
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Insufficient color contrast: 3.69:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(172, 120, 114). Text: "City Council" WCAG 1.4.3
<a href="#" class="calendar-name-filter" data-calendar-id="5" rel="noreferrer noopener" data-sonde-contrast-state-id="sonde-contrast-state-11" data-sonde-contrast-state-owned="true">City Council</a>
high Insufficient color contrast: 2.82:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(107, 168, 111). Text: "7a" WCAG 1.4.3
<div class="fc-event-time">7a</div>
high Insufficient color contrast: 2.82:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(107, 168, 111). Text: "Orange Week Recycling" WCAG 1.4.3
<div class="fc-event-title fc-sticky">Orange Week Recycling</div>
high Insufficient color contrast: 2.08:1 (required: 4.5:1 for normal text). Foreground: rgb(2, 29, 113), background: rgb(172, 26, 47). Text: "share this page" WCAG 1.4.3
<span class="sr-only">share this page</span>
high Console error: SyntaxError: Unexpected token ')'
https://www.dsm.city/calendar.php:814mediumhigh Focus jumps backward from "Login" to "Website Feedback" (visual distance: 613px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<button>Website Feedback</button>
high Focus jumps backward from "Accessibility Menu" to "Visit Relocation Information page" (visual distance: 1083px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>Visit Relocation Information page</a>
medium Focusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose. WCAG 4.1.2
<!-- a11y: role="generic" -->
medium Focusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose. WCAG 4.1.2
<!-- a11y: role="generic" -->
medium Focusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose. WCAG 4.1.2
<!-- a11y: role="generic" -->
medium Focusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose. WCAG 4.1.2
<!-- a11y: role="generic" -->
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium Insufficient color contrast: 4.33:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(29, 53, 87). Effective opacity: 0.50. Text: "today" WCAG 1.4.3
<button type="button" title="This month" disabled="" aria-pressed="false" class="fc-today-button fc-button fc-button-primary">today</button>
medium The same link functionality is identified as "Meetings" on https://www.dsm.city/ and "City Council Meetings" on https://www.dsm.city/calendar.php?view=month&month=05&day=01&year=2026. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a class="menuA level2 menuHidden" href="government/city_council/meetings/index.php" target="_self" rel="noreferrer noopener">City Council Meetings</a>
medium The same button functionality is identified as "Previous Slide" on https://www.dsm.city/ and "Next Slide" on https://www.dsm.city/calendar.php?view=month&month=05&day=01&year=2026. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<button type="button" data-controls="next" aria-controls="tns1" aria-label="Next Slide"><i class="right" aria-hidden="true"></i></button>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/calendar.php returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/calendar.php">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
www.dsm.city38findings
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns2-item5" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns2-item6" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns2-item7" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns2-item8" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns3-item3" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns3-item4" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns3-item5" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns4-item1" aria-hidden="true" tabindex="-1">
high ARIA hidden element must not be focusable or contain focusable elements: Fix all of the following: Focusable content should have tabindex="-1" or be removed from the DOM WCAG 4.1.2
<li class="tiny-item tns-item" id="tns4-item2" aria-hidden="true" tabindex="-1">
high Elements must meet minimum color contrast ratio thresholds: Fix any of the following: Element has insufficient color contrast of 1.98 (foreground color: #b8b8b8, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1 WCAG 1.4.3
<a title="Go to April 27, 2026" data-navlink="" tabindex="0" id="fc-dom-4" class="fc-daygrid-day-number">27</a>
high Elements must meet minimum color contrast ratio thresholds: Fix any of the following: Element has insufficient color contrast of 1.98 (foreground color: #b8b8b8, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1 WCAG 1.4.3
<a title="Go to April 29, 2026" data-navlink="" tabindex="0" id="fc-dom-8" class="fc-daygrid-day-number">29</a>
high Elements must meet minimum color contrast ratio thresholds: Fix any of the following: Element has insufficient color contrast of 1.98 (foreground color: #b8b8b8, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1 WCAG 1.4.3
<a title="Go to April 30, 2026" data-navlink="" tabindex="0" id="fc-dom-10" class="fc-daygrid-day-number">30</a>
high Elements must meet minimum color contrast ratio thresholds: Fix any of the following: Element has insufficient color contrast of 1.98 (foreground color: #b8b8b8, background color: #ffffff, font size: 10.5pt (14px), font weight: bold). Expected contrast ratio of 4.5:1 WCAG 1.4.3
<a title="Go to April 26, 2026" data-navlink="" tabindex="0" id="fc-dom-2" class="fc-daygrid-day-number">26</a>
high Focus jumps backward from "Login" to "Website Feedback" (visual distance: 613px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<button>Website Feedback</button>
high Focus jumps backward from "Police" to "Careers" (visual distance: 404px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>Careers</a>
high Focus jumps backward from "Next Slide" to "May 22, 2026" (visual distance: 1216px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>May 22, 2026</a>
high Focus jumps backward from "May 13, 2026" to "May 05, 2026" (visual distance: 386px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>May 05, 2026</a>
high Focus jumps backward from "Accessibility Menu" to "Visit Relocation Information page" (visual distance: 1083px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>Visit Relocation Information page</a>
high Missing Strict-Transport-Security header (HSTS)
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/ returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
/government/index.php36findings
high Empty heading (role="heading"). Headings must contain text for screen reader navigation to work. WCAG 1.3.1
<!-- a11y: role="heading" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Insufficient color contrast: 2.08:1 (required: 4.5:1 for normal text). Foreground: rgb(2, 29, 113), background: rgb(172, 26, 47). Text: "share this page" WCAG 1.4.3
<span class="sr-only">share this page</span>
high Focus jumps backward from "Strategic Efforts" to "share this page" (visual distance: 1208px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<button>share this page</button>
high Missing Strict-Transport-Security header (HSTS)
medium Page has 2 "main" landmarks but only 0 have distinct labels. Screen reader users cannot distinguish between them. WCAG 1.3.1
<!-- 2 main landmarks, 0 labeled -->
medium Main landmark should not be contained in another landmark: Fix any of the following: The main landmark is contained in another landmark.
<main id="freeform-main" class="has-edit-buttons yes-has-edit-buttons">
medium Document should not have more than one main landmark: Fix any of the following: Document has more than one main landmark
<main id="main">
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/city_council/proclamations.php" target="_self" rel="noreferrer noopener">Proclamations</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="boards_commissions/transportation_safety.php" target="_self" rel="noreferrer noopener">Transportation Safety Committee</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="https://maps.dsm.city/projects/" target="_new" rel="noreferrer noopener">Projects Map</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="government/strategic_plans/reflectdsm.php" target="_self" rel="noreferrer noopener">ReflectDSM</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/engineering/traffic_transportation/traffic_safety/index.php" target="_self" rel="noreferrer noopener">Vision Zero</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/parks_recreation/volunteer/index.php" target="_self" rel="noreferrer noopener">Volunteer</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_clerk/parking_tickets.php" target="_self" rel="noreferrer noopener">Parking Tickets</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/city_manager/facilities/index.php" target="_self" rel="noreferrer noopener">Facilities</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/community_impact/reports___documents.php" target="_self" rel="noreferrer noopener">Reports & Documents</a>
medium Link is distinguished from surrounding text only by color (link: rgb(29, 53, 87), text: rgb(26, 26, 26)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a class="menuA level2 menuHidden" href="departments/development_services/planning_urban_design/index.php" target="_self" rel="noreferrer noopener">Planning & Urban Design</a>
medium The same link functionality is identified as "Your Government" on https://www.dsm.city/ and "City of Des Moines Iowa Logo Homepage" on https://www.dsm.city/government/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="./index.php" id="logo" aria-label="City of Des Moines Iowa Logo Homepage" rel="noreferrer noopener"> <svg width="219" height="76" viewBox="0 0 219 76" fill="none" xmlns="http://www.w3.org/2000/svg" alt="City of Des Moines logo in full color"> <path d="M68.8429 72.7829C67.4982 74.0368 65.8449 74.6637 63.8775 74.6637H60.3781V60.536H63.8775C65.8449 60.536 67.4982 61.1575 68.8429 62.4058C70.1876 63.6541 70.8544 65.3864 70.8544 67.6026C70.8599 69.8023 70.1876 71.5291 68.8429 72.7
medium The same link functionality is identified as "Skip to main content" on https://www.dsm.city/ and "Data" on https://www.dsm.city/government/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a class="menuA level2 menuHidden" href="https://data.dsm.city/" target="_new" rel="noreferrer noopener">Data</a>
medium The same button functionality is identified as "Previous Slide" on https://www.dsm.city/ and "Next Slide" on https://www.dsm.city/government/index.php. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<button type="button" data-controls="next" aria-controls="tns1" aria-label="Next Slide"><i class="right" aria-hidden="true"></i></button>
medium "(515) 283-4500" is visually at position 37 but receives focus at position 23 (drift: 14). WCAG 2.4.3
<a>(515) 283-4500</a>
medium Interactive control "a" is only 17px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a>
medium Interactive control "a.alert-more" is only 24px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.alert-more>
medium Interactive control "a.link" is only 35px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.link>
medium Interactive control "button.alert-closebtn" is only 24px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<button.alert-closebtn>
medium Interactive control "button.share-btn.floating-share-btn" is only 40px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<button.share-btn.floating-share-btn>
medium Content clipped by 7px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<section id="slider" class="tiny-slider-wrap has-edit-buttons yes-has-edit-buttons" aria-label="Page Banner"> <div class="center-center"> <div class="rz-btns-container"> <script langu
medium Content clipped by 20px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<span class="sr-only">share this page</span>
low Headings should not be empty: 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 attribute
<h2 class="tile-title" id="page-title0"></h2>
low Broken link: https://catalog.dmpl.org/?browseCategory=new_books_everyone returned status 403 Forbidden after 1 attempts
<a href="https://catalog.dmpl.org/?browseCategory=new_books_everyone">Browse Catalog</a>
low Broken link: https://www.twitter.com/intent/tweet?url=http://www.dsm.city/government/index.php returned status 403 Forbidden after 1 attempts
<a href="https://www.twitter.com/intent/tweet?url=http://www.dsm.city/government/index.php">share on twitter</a>
low Link timeout: https://desmoines.rja.revize.com/forms/401 did not respond within 5000ms after 2 attempts
<a href="https://desmoines.rja.revize.com/forms/401">Request to Speak</a>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
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 publish the methodology and invite public feedback 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.