City of Boise — Score 892 | Sonde

Sonde

Accessibility Health Check

https://cityofboise.org

Strong

April 28, 2026

Provided free by Sonde

6pages208findings20critical85high88medium15low34.7avg/page3,449elements102with findings97%ECR3m 22stotal33.6sper page

Strong

Executive Summary

6pages208findings34.7avg/page3,449elements102with findings97%ECR3m 22stotal33.6sper page

Top Findings

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

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgba(0, 0, 0, 0), background: rgb(255, 255, 255). Text: "Search"WCAG 1.4.3
Element:
<span class="text-hide">Search</span>
Sonde Fix Plan

Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highARIA 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 DOMWCAG 4.1.2
Element:
<figure class="carousel-cell" style="" aria-hidden="true">
Sonde Fix Plan

Ensure aria-hidden elements are not focusable nor contain focusable elements. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highARIA 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 DOMWCAG 4.1.2
Element:
<figure class="carousel-cell" aria-hidden="true" style="">
Sonde Fix Plan

Ensure aria-hidden elements are not focusable nor contain focusable elements. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highARIA 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 DOMWCAG 4.1.2
Element:
<figure class="carousel-cell" aria-hidden="true" style="">
Sonde Fix Plan

Ensure aria-hidden elements are not focusable nor contain focusable elements. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="https://mycourts.idaho.gov/" target="_blank"> <i class="cob-icon-Pantheon cob-icon-color--orange"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-clerk/city-code/"> <i class="cob-icon-Assignment cob-icon-color--blue"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-clerk/public-records/"> <i class="cob-icon-Books cob-icon-color--blue"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-clerk/master-fees-and-fines/"> <i class="cob-icon-Banknote cob-icon-color--orange"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-clerk/licensing/"> <i class="cob-icon-Marriage-Settlement cob-icon-color--red"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-council/"> <i class="cob-icon-Auction cob-icon-color--green"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highFocus jumps backward from "GET DIRECTIONS" to "CLOSE" (visual distance: 733px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>CLOSE</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SUBMIT" to "(208) 608-7000" (visual distance: 879px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>(208) 608-7000</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "GET DIRECTIONS" to "CLOSE" (visual distance: 773px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>CLOSE</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SUBMIT" to "(208) 608-7950" (visual distance: 892px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>(208) 608-7950</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SUBMIT" to "(208) 608-7950" (visual distance: 892px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>(208) 608-7950</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "GET DIRECTIONS" to "CLOSE" (visual distance: 733px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>CLOSE</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "GET DIRECTIONS" to "CLOSE" (visual distance: 773px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>CLOSE</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SUBMIT" to "(208) 608-7950" (visual distance: 892px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>(208) 608-7950</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SUBMIT" to "(208) 972-8150" (visual distance: 879px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>(208) 972-8150</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SEE MORE" to "Childcare Services Updates" (visual distance: 794px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>Childcare Services Updates</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "GET DIRECTIONS" to "CLOSE" (visual distance: 773px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>CLOSE</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

mediumPage has 2 "navigation" landmarks but only 0 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 2 navigation landmarks, 0 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumPage has 4 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 4 navigation landmarks, 1 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumPage has 3 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 3 navigation landmarks, 1 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumPage has 3 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 3 navigation landmarks, 1 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumPage has 3 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 3 navigation landmarks, 1 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumPage has 5 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 5 navigation landmarks, 1 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Page: /
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumHeading levels should only increase by one: Fix any of the following: Heading order invalid
Element:
<h3><span>Employment Opportunities</span></h3>
Sonde Fix Plan

Ensure the order of headings is semantically correct. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumHeading levels should only increase by one: Fix any of the following: Heading order invalid
Element:
<h3>Be 'In the Know,'</h3>
Sonde Fix Plan

Ensure the order of headings is semantically correct. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumHeading levels should only increase by one: Fix any of the following: Heading order invalid
Element:
<h3>Be 'In the Know,'</h3>
Sonde Fix Plan

Ensure the order of headings is semantically correct. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumAside should not be contained in another landmark: Fix any of the following: The null landmark is contained in another landmark.
Element:
<aside class="col-md-4 sidebar">
Sonde Fix Plan

Ensure the complementary landmark or aside is at top level. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumHeading levels should only increase by one: Fix any of the following: Heading order invalid
Element:
<h3>Other Links</h3>
Sonde Fix Plan

Ensure the order of headings is semantically correct. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/">Home</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/departments/city-attorney/">City Attorney</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/">Home</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/">Home</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/departments/city-attorney/">City Attorney</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/">Home</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/departments/city-attorney/">City Attorney</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/">Home</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumInsufficient color contrast: 3.42:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 0, 0), background: rgb(237, 237, 241). Text: "PENDING"WCAG 1.4.3
Element:
<span style="color:red">PENDING</span>
Sonde Fix Plan

Current ratio: 3.42:1 (need 4.5:1). Change foreground from #ff0000 to #da0000 (ratio: 4.5:1).

mediumClicking "Submit" inserts 1 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="btn--submit--circle" type="submit" role="button"><span class="sr-only">Submit</span></button>
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumElement overflows viewport by 276px at 320px width.WCAG 1.4.10
Element:
<img class="card-img-top lazy" data-src="/media/21319/1st-place_courtesy-city-of-boise.jpg?center=0.24230769230769231,0.5&amp;mode=crop&amp;width=350&amp;height=250&amp;rnd=134211724130000000" src="ht
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 276px at 320px width.WCAG 1.4.10
Element:
<div class="card-body"><h3 class="card-title">City Announces Community Design Lab Awards Winners</h3><p class="card-text"></p><time datetime="2026-20-30">April 20, 2026</time></div>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 192px at 320px width.WCAG 1.4.10
Element:
<figure class="carousel-cell" aria-hidden="true" style="position: absolute; left: 80%;"><a href="/news/planning-and-development-services/2026/april/city-announces-community-design-lab-awards-winners/"
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 244px at 320px width.WCAG 1.4.10
Element:
<h3 class="card-title">City Announces Community Design Lab Awards Winners</h3>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 276px at 320px width.WCAG 1.4.10
Element:
<div class="card card--article-teaser vibe-bar-action"><img class="card-img-top lazy" data-src="/media/21319/1st-place_courtesy-city-of-boise.jpg?center=0.24230769230769231,0.5&amp;mode=crop&amp;width
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 276px at 320px width.WCAG 1.4.10
Element:
<a href="/news/planning-and-development-services/2026/april/city-announces-community-design-lab-awards-winners/"><div class="card card--article-teaser vibe-bar-action"><img class="card-img-top lazy" d
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 93px at 320px width.WCAG 1.4.10
Element:
<a class="nav-link" href="/government/"> Government </a>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 93px at 320px width.WCAG 1.4.10
Element:
<li class="nav-item"><a class="nav-link" href="/government/"> Government </a></li>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 11px at 320px width.WCAG 1.4.10
Element:
<form id="header-search" class="form-inline my-2 my-lg-0 search-form"><input class="form-control search-form__text-input" type="text" placeholder="Search" aria-label="Search"> <button class="btn btn-s
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 11px at 320px width.WCAG 1.4.10
Element:
<input class="form-control search-form__text-input" type="text" placeholder="Search" aria-label="Search">
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumContent 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
Element:
<div class="grecaptcha-badge" data-style="bottomright" style="width: 256px; height: 60px; display: block; transition: right 0.3s; position: fixed; bottom: 14px; right: -186px; box-shadow: gray 0px 0px
Sonde Fix Plan

Avoid fixed-height containers with overflow: hidden for text content. Use min-height or allow containers to grow.

mediumElement overflows viewport by 74px at 320px width.WCAG 1.4.10
Element:
<span class="text-hide">Search</span>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 186px at 320px width.WCAG 1.4.10
Element:
<div class="grecaptcha-badge" data-style="bottomright" style="width: 256px; height: 60px; display: block; transition: right 0.3s; position: fixed; bottom: 14px; right: -186px; box-shadow: gray 0px 0px
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 84px at 320px width.WCAG 1.4.10
Element:
<button class="btn btn-search btn-outline-success my-2 my-sm-0" type="button"><span class="text-hide">Search</span></button>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 186px at 320px width.WCAG 1.4.10
Element:
<div class="grecaptcha-error"></div>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumContent clipped by 23px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability.WCAG 1.4.12
Element:
<a href="#body" class="sr-only sr-only-focusable">Skip to main content</a>
Sonde Fix Plan

Avoid fixed-height containers with overflow: hidden for text content. Use min-height or allow containers to grow.

mediumElement overflows viewport by 186px at 320px width.WCAG 1.4.10
Element:
<div class="grecaptcha-logo"><iframe title="reCAPTCHA" width="256" height="60" role="presentation" name="a-twug8rsjpqdd" frameborder="0" scrolling="no" sandbox="allow-forms allow-popups allow-same-ori
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 186px at 320px width.WCAG 1.4.10
Element:
<iframe title="reCAPTCHA" width="256" height="60" role="presentation" name="a-twug8rsjpqdd" frameborder="0" scrolling="no" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-n
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumContent clipped by 23px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability.WCAG 1.4.12
Element:
<span class="sr-only">Search</span>
Sonde Fix Plan

Avoid fixed-height containers with overflow: hidden for text content. Use min-height or allow containers to grow.

lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
lowBroken link: https://mycourts.idaho.gov/ returned status 403 Forbidden after 1 attempts
Element:
<a href="https://mycourts.idaho.gov/"></a>
lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
lowPossible stuck loading animation: "spinner-rotator" still running after page readiness
Element:
<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
lowPossible stuck loading animation: "spinner-dash" still running after page readiness
Element:
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
lowPossible stuck loading animation: "spinner-rotator" still running after page readiness
Element:
<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
lowPossible stuck loading animation: "spinner-dash" still running after page readiness
Element:
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
lowPossible stuck loading animation: "spinner-rotator" still running after page readiness
Element:
<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
lowPossible stuck loading animation: "spinner-dash" still running after page readiness
Element:
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
lowPossible stuck loading animation: "spinner-dash" still running after page readiness
Element:
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
lowPossible stuck loading animation: "spinner-rotator" still running after page readiness
Element:
<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

Best Page Fix Opportunities

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highARIA 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 DOMWCAG 4.1.2
Element:
<figure class="carousel-cell" style="" aria-hidden="true">
Sonde Fix Plan

Ensure aria-hidden elements are not focusable nor contain focusable elements. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highARIA 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 DOMWCAG 4.1.2
Element:
<figure class="carousel-cell" aria-hidden="true" style="">
Sonde Fix Plan

Ensure aria-hidden elements are not focusable nor contain focusable elements. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highARIA 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 DOMWCAG 4.1.2
Element:
<figure class="carousel-cell" aria-hidden="true" style="">
Sonde Fix Plan

Ensure aria-hidden elements are not focusable nor contain focusable elements. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highFocus jumps backward from "GET DIRECTIONS" to "CLOSE" (visual distance: 733px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>CLOSE</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SUBMIT" to "(208) 608-7000" (visual distance: 879px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>(208) 608-7000</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

mediumPage has 2 "navigation" landmarks but only 0 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 2 navigation landmarks, 0 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Page: /
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
/departments/city-clerk35findings
criticalInteractive element with role="textbox" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
Element:
<!-- a11y: role="textbox" -->
Sonde Fix Plan

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-clerk/city-code/"> <i class="cob-icon-Assignment cob-icon-color--blue"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-clerk/public-records/"> <i class="cob-icon-Books cob-icon-color--blue"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-clerk/master-fees-and-fines/"> <i class="cob-icon-Banknote cob-icon-color--orange"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-clerk/licensing/"> <i class="cob-icon-Marriage-Settlement cob-icon-color--red"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highLinks must have discernible text: Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attributeWCAG 2.4.4
Element:
<a class="link" href="/departments/city-council/"> <i class="cob-icon-Auction cob-icon-color--green"></i></a>
Sonde Fix Plan

Ensure links have discernible text. See: https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highFocus jumps backward from "SUBMIT" to "(208) 972-8150" (visual distance: 879px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>(208) 972-8150</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SEE MORE" to "Childcare Services Updates" (visual distance: 794px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>Childcare Services Updates</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "GET DIRECTIONS" to "CLOSE" (visual distance: 773px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>CLOSE</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

mediumPage has 5 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 5 navigation landmarks, 1 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumAside should not be contained in another landmark: Fix any of the following: The null landmark is contained in another landmark.
Element:
<aside class="col-md-4 sidebar">
Sonde Fix Plan

Ensure the complementary landmark or aside is at top level. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumHeading levels should only increase by one: Fix any of the following: Heading order invalid
Element:
<h3>Other Links</h3>
Sonde Fix Plan

Ensure the order of headings is semantically correct. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/">Home</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumElement overflows viewport by 74px at 320px width.WCAG 1.4.10
Element:
<span class="text-hide">Search</span>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 186px at 320px width.WCAG 1.4.10
Element:
<div class="grecaptcha-badge" data-style="bottomright" style="width: 256px; height: 60px; display: block; transition: right 0.3s; position: fixed; bottom: 14px; right: -186px; box-shadow: gray 0px 0px
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 84px at 320px width.WCAG 1.4.10
Element:
<button class="btn btn-search btn-outline-success my-2 my-sm-0" type="button"><span class="text-hide">Search</span></button>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 186px at 320px width.WCAG 1.4.10
Element:
<div class="grecaptcha-error"></div>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumContent clipped by 23px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability.WCAG 1.4.12
Element:
<a href="#body" class="sr-only sr-only-focusable">Skip to main content</a>
Sonde Fix Plan

Avoid fixed-height containers with overflow: hidden for text content. Use min-height or allow containers to grow.

mediumElement overflows viewport by 186px at 320px width.WCAG 1.4.10
Element:
<div class="grecaptcha-logo"><iframe title="reCAPTCHA" width="256" height="60" role="presentation" name="a-twug8rsjpqdd" frameborder="0" scrolling="no" sandbox="allow-forms allow-popups allow-same-ori
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 186px at 320px width.WCAG 1.4.10
Element:
<iframe title="reCAPTCHA" width="256" height="60" role="presentation" name="a-twug8rsjpqdd" frameborder="0" scrolling="no" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-n
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumContent clipped by 23px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability.WCAG 1.4.12
Element:
<span class="sr-only">Search</span>
Sonde Fix Plan

Avoid fixed-height containers with overflow: hidden for text content. Use min-height or allow containers to grow.

lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
lowPossible stuck loading animation: "spinner-dash" still running after page readiness
Element:
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
lowPossible stuck loading animation: "spinner-rotator" still running after page readiness
Element:
<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
/departments/city-attorney/employment-opportunities23findings
criticalInteractive element with role="textbox" has no accessible name. Screen readers cannot identify this control.WCAG 4.1.2
Element:
<!-- a11y: role="textbox" -->
Sonde Fix Plan

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

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

Add an accessible name using aria-label, aria-labelledby, or visible text content. WCAG 4.1.2 requires all interactive elements to have a programmatically determinable name.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/SiteDirectory" class="small">Sitemap</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highAll touch targets must be 24px large, or leave sufficient space: Fix any of the following: Target has insufficient size (160px by 12.8px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 17.6px instead of at least 24px.WCAG 2.5.8
Element:
<a href="/terms-of-use" class="small">Terms of Use</a>
Sonde Fix Plan

Ensure touch targets have sufficient size and space. See: https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

highFrames must have an accessible name: Fix any of the following: Element has no title attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element's default semantics were not overridden with role="none" or role="presentation"WCAG 4.1.2
Element:
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyA0s1a7phLN0iaD6-UE7m4qP-z21pH0eSc&amp;q=150 N Capitol Blvd, Boise, ID 83702" width="600" height="200" frameborder="0" style="border:0"...
Sonde Fix Plan

Ensure <iframe> and <frame> elements have an accessible name. See: https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

highFocus jumps backward from "GET DIRECTIONS" to "CLOSE" (visual distance: 773px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>CLOSE</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "SUBMIT" to "(208) 608-7950" (visual distance: 892px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>(208) 608-7950</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

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

Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

mediumPage has 3 "navigation" landmarks but only 1 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 3 navigation landmarks, 1 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumLandmarks should have a unique role or role/label/title (i.e. accessible name) combination: Fix any of the following: The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable
Element:
<nav class="navbar navbar-expand navbar-light bg-light" style="min-height:105px">
Sonde Fix Plan

Ensure landmarks are unique. See: https://www.w3.org/WAI/WCAG22/quickref/

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/">Home</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(255, 255, 255), text: rgb(74, 79, 84)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a href="/departments/city-attorney/">City Attorney</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumElement overflows viewport by 93px at 320px width.WCAG 1.4.10
Element:
<a class="nav-link" href="/government/"> Government </a>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 93px at 320px width.WCAG 1.4.10
Element:
<li class="nav-item"><a class="nav-link" href="/government/"> Government </a></li>
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 11px at 320px width.WCAG 1.4.10
Element:
<form id="header-search" class="form-inline my-2 my-lg-0 search-form"><input class="form-control search-form__text-input" type="text" placeholder="Search" aria-label="Search"> <button class="btn btn-s
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumElement overflows viewport by 11px at 320px width.WCAG 1.4.10
Element:
<input class="form-control search-form__text-input" type="text" placeholder="Search" aria-label="Search">
Sonde Fix Plan

Set max-width: 100% or use overflow-wrap to prevent horizontal overflow.

mediumContent 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
Element:
<div class="grecaptcha-badge" data-style="bottomright" style="width: 256px; height: 60px; display: block; transition: right 0.3s; position: fixed; bottom: 14px; right: -186px; box-shadow: gray 0px 0px
Sonde Fix Plan

Avoid fixed-height containers with overflow: hidden for text content. Use min-height or allow containers to grow.

lowBroken link: https://twitter.com/CityOfBoise returned status 403 Forbidden after 1 attempts
Element:
<a href="https://twitter.com/CityOfBoise">Twitter</a>
lowPossible stuck loading animation: "spinner-rotator" still running after page readiness
Element:
<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
lowPossible stuck loading animation: "spinner-dash" still running after page readiness
Element:
<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.

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

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

TierWeightExamples
Critical10Keyboard traps, missing page language
High3Missing alt text, insufficient contrast
Medium1Heading hierarchy, unclear link purpose
Low0.25Best-practice suggestions

The Sonde Score is a living standard (v0.1). We’re building it in the open because accessibility is too important for closed-door decisions. Your expertise makes it better.

Enter Mission Control

Review raw findings data, track changes between scans, and contribute to Sonde’s open methodology.

Nominate a Site for the Daylight Index

Know a public website that should be on the accessibility leaderboard? Nominate it — we’ll scan it and publish the results.

Nominate a Site →

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

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

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