Accessibility Health Check
https://nyc.gov
Excellent
https://daylight.sonde.tech/usgov/nyc-gov/
New York City
Excellent
Executive Summary
Top Findings
critical Required ARIA attributes must be provided: Fix any of the following: Required ARIA attribute not present: aria-expanded WCAG 4.1.2
<button class="cmp-language-navigat..." id="open-language-modal" role="combobox" aria-label="Language" aria-controls="global-language-moda..." aria-haspopup="dialog" data-open-modal="" data-sonde-cont...
critical Insufficient color contrast: 1.14:1 (required: 3:1 for large text). Foreground: rgb(255, 255, 255), background: rgb(226, 243, 255). Text: "Find what you need on nyc.gov" WCAG 1.4.3
<span class="main-heading--subhead">Find what you need on nyc.gov</span>
critical Insufficient color contrast: 1.66:1 (required: 4.5:1 for normal text). Foreground: rgb(51, 51, 51), background: rgb(0, 0, 0). Text: "NYC.gov footer" WCAG 1.4.3
<span id="nyc-footer" class="sr-only">NYC.gov footer</span>
critical Insufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgba(0, 0, 0, 0), background: rgb(255, 255, 255). Text: "Home" WCAG 1.4.3
<a href="/" data-sonde-contrast-state-id="sonde-contrast-state-3" data-sonde-contrast-state-owned="true">Home</a>
critical Insufficient color contrast: 1.66:1 (required: 3:1 for large text). Foreground: rgb(51, 51, 51), background: rgb(0, 0, 0). Text: "More on NYC.gov" WCAG 1.4.3
<h2 class="sr-only">More on NYC.gov</h2>
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Insufficient color contrast: 2.85:1 (required: 3:1 for large text). Foreground: rgba(0, 0, 0, 0), background: rgb(108, 149, 255). Text: "English" WCAG 1.4.3
<span class="cmp-language-navigation__action-button--language" aria-hidden="true">English</span>
high Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys
https://maps.googleapis.com/maps-api-v3/api/js/65/1c/util.js:28mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys
https://maps.googleapis.com/maps-api-v3/api/js/65/1c/util.js:28mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediumhigh Focus jumps backward from "Seining and Shore Exploration" to "Family Day" (visual distance: 597px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>Family Day</a>
high Missing Content-Security-Policy header
medium Heading levels should only increase by one: Fix any of the following: Heading order invalid
<h3><span>Tuesday,</span><span>May 26, 2026</span></h3>
medium Link is distinguished from surrounding text only by color (link: rgb(5, 26, 219), text: rgb(0, 0, 0)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a href="https://www.nyc.gov/html/dot/html/motorist/alternate-side-parking.shtml"><u>View the full year alternate side parking calendar</u></a>
medium Link is distinguished from surrounding text only by color (link: rgb(5, 26, 219), text: rgb(0, 0, 0)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a href="https://www.nyc.gov/assets/dsny/forms/collection-schedule"><u>Check your collection schedule</u></a>
medium Link is distinguished from surrounding text only by color (link: rgb(5, 26, 219), text: rgb(0, 0, 0)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a href="https://www.schools.nyc.gov/calendar"><u>View the public school calendar</u></a>
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/freehtml. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/freehtml. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/attend-a-class. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/attend-a-class. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/featured-projects. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/featured-projects. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Spatial-Equity-NYC-. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Spatial-Equity-NYC-. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Where-does-NYC-Garbage-Go. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Where-does-NYC-Garbage-Go. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/non-featured-projects. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/non-featured-projects. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/submit-a-project. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/submit-a-project. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/user-guides. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/user-guides. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/user-guides/filtering-and-exporting-open-data. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/user-guides/filtering-and-exporting-open-data. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/user-guides/open-data-101. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/user-guides/open-data-101. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/user-guides/open-data-apis. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/user-guides/open-data-apis. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/what-is-open-data-. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/what-is-open-data-. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/sample-page. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/sample-page. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium Broken link: https://www.nyc.gov/opendata/freehtml#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/freehtml#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/attend-a-class#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/attend-a-class#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery/featured-projects#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/featured-projects#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Spatial-Equity-NYC-#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Spatial-Equity-NYC-#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Where-does-NYC-Garbage-Go#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Where-does-NYC-Garbage-Go#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery/submit-a-project#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/submit-a-project#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/user-guides#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/user-guides#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/user-guides/filtering-and-exporting-open-data#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/user-guides/filtering-and-exporting-open-data#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/user-guides/open-data-101#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/user-guides/open-data-101#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/user-guides/open-data-apis#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/user-guides/open-data-apis#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/get-started/what-is-open-data-#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/what-is-open-data-#main">Skip Main Navigation</a>
medium Broken link: https://www.nyc.gov/opendata/sample-page#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/sample-page#main">Skip Main Navigation</a>
medium Interactive control "a.arrow-link.white-link" is only 17px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.arrow-link.white-link>
medium Interactive control "a.sr-only.sr-only-focusable" is only 1px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.sr-only.sr-only-focusable>
medium Interactive control "#global-language" is only 30px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<#global-language>
medium Interactive control "#search-collapse-button" is only 30px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<#search-collapse-button>
medium Interactive control "a.logo" is only 40px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.logo>
medium Content clipped by 47px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<span id="nyc-footer" class="sr-only">NYC.gov footer</span>
medium Content clipped by 71px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<a href="#main" class="sr-only sr-only-focusable">Skip Main Navigation</a>
medium Content clipped by 57px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<h1 class="sr-only">NYC</h1>
medium Content clipped by 94px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<h2 class="sr-only">Primary Navigation</h2>
medium Content clipped by 233px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<span class="sr-only">Learn more about Digital Accessibility from the Mayor's Office for People with Disabilities.</span>
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
low Broken link: https://new.mta.info/ returned status 403 Forbidden after 1 attempts
<a href="https://new.mta.info/">Check transit alerts</a>
low Link timeout: https://www.nyc.gov/opendata/get-started/gallery/non-featured-projects#main did not respond within 5000ms after 2 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/non-featured-projects#main">Skip Main Navigation</a>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
low Possible stuck loading animation: "spinner-rotator" still running after page readiness
<svg xmlns="http://www.w3.org/2000/svg" class="VIpgJd-ZVi9od-aZ2wEe" width="96px" height="96px" viewBox="0 0 66 66"><circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linec
low Possible stuck loading animation: "spinner-dash" still running after page readiness
<circle class="VIpgJd-ZVi9od-aZ2wEe-Jt5cK" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
Best Page Fix Opportunities
/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker13findings
high Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediummedium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/featured-projects/New-York-City-Jail-Population-Tracker#main">Skip Main Navigation</a>
medium Interactive control "#global-language" is only 30px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<#global-language>
medium Interactive control "#search-collapse-button" is only 30px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<#search-collapse-button>
medium Interactive control "a.logo" is only 40px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.logo>
medium Content clipped by 47px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<span id="nyc-footer" class="sr-only">NYC.gov footer</span>
medium Content clipped by 71px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<a href="#main" class="sr-only sr-only-focusable">Skip Main Navigation</a>
medium Content clipped by 57px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<h1 class="sr-only">NYC</h1>
medium Content clipped by 94px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<h2 class="sr-only">Primary Navigation</h2>
medium Content clipped by 233px when text spacing is applied per WCAG 1.4.12. Text may be hidden when users adjust spacing for readability. WCAG 1.4.12
<span class="sr-only">Learn more about Digital Accessibility from the Mayor's Office for People with Disabilities.</span>
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
/main11findings
critical Required ARIA attributes must be provided: Fix any of the following: Required ARIA attribute not present: aria-expanded WCAG 4.1.2
<button class="cmp-language-navigat..." id="open-language-modal" role="combobox" aria-label="Language" aria-controls="global-language-moda..." aria-haspopup="dialog" data-open-modal="" data-sonde-cont...
critical Insufficient color contrast: 1.14:1 (required: 3:1 for large text). Foreground: rgb(255, 255, 255), background: rgb(226, 243, 255). Text: "Find what you need on nyc.gov" WCAG 1.4.3
<span class="main-heading--subhead">Find what you need on nyc.gov</span>
high Image has no accessible name in the accessibility tree. Screen readers will skip or announce it generically. WCAG 1.1.1
<!-- a11y: role="image" -->
high Insufficient color contrast: 2.85:1 (required: 3:1 for large text). Foreground: rgba(0, 0, 0, 0), background: rgb(108, 149, 255). Text: "English" WCAG 1.4.3
<span class="cmp-language-navigation__action-button--language" aria-hidden="true">English</span>
high Focus jumps backward from "Seining and Shore Exploration" to "Family Day" (visual distance: 597px). No explicit tabIndex — likely a DOM order issue. WCAG 2.4.3
<a>Family Day</a>
high Missing Content-Security-Policy header
medium Heading levels should only increase by one: Fix any of the following: Heading order invalid
<h3><span>Tuesday,</span><span>May 26, 2026</span></h3>
medium Link is distinguished from surrounding text only by color (link: rgb(5, 26, 219), text: rgb(0, 0, 0)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a href="https://www.nyc.gov/html/dot/html/motorist/alternate-side-parking.shtml"><u>View the full year alternate side parking calendar</u></a>
medium Link is distinguished from surrounding text only by color (link: rgb(5, 26, 219), text: rgb(0, 0, 0)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a href="https://www.nyc.gov/assets/dsny/forms/collection-schedule"><u>Check your collection schedule</u></a>
medium Link is distinguished from surrounding text only by color (link: rgb(5, 26, 219), text: rgb(0, 0, 0)). Users who cannot perceive color differences may not identify this as a link. WCAG 1.4.1
<a href="https://www.schools.nyc.gov/calendar"><u>View the public school calendar</u></a>
low Broken link: https://new.mta.info/ returned status 403 Forbidden after 1 attempts
<a href="https://new.mta.info/">Check transit alerts</a>
/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces10findings
critical Insufficient color contrast: 1.66:1 (required: 4.5:1 for normal text). Foreground: rgb(51, 51, 51), background: rgb(0, 0, 0). Text: "NYC.gov footer" WCAG 1.4.3
<span id="nyc-footer" class="sr-only">NYC.gov footer</span>
critical Insufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgba(0, 0, 0, 0), background: rgb(255, 255, 255). Text: "Home" WCAG 1.4.3
<a href="/" data-sonde-contrast-state-id="sonde-contrast-state-3" data-sonde-contrast-state-owned="true">Home</a>
critical Insufficient color contrast: 1.66:1 (required: 3:1 for large text). Foreground: rgb(51, 51, 51), background: rgb(0, 0, 0). Text: "More on NYC.gov" WCAG 1.4.3
<h2 class="sr-only">More on NYC.gov</h2>
high Console warning: Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false:332mediummedium The same link functionality is identified as "NYC" on https://www.nyc.gov/main and "nycgo.com" on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces. Components with the same function should use consistent names within the same locale. WCAG 3.2.4
<a href="http://www.nycgo.com/" title="" class="arrow-link white-link small" data-sonde-contrast-state-id="sonde-contrast-state-1" data-sonde-contrast-state-owned="true"><strong>nycgo.com</strong></a>
medium Navigation region "Services Parking or camera tickets Noise complaint Get rid of waste Illegal parking complaint Apartment maintenance complaint Birth certificates Rent increase help SNAP benefits View all services Close Back Events Your government Understanding local government Agency directory Office of the Mayor Close Back nyc.gov home" is present on https://www.nyc.gov/main but missing on https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces. Navigation should appear consistently across pages in the same site set. WCAG 3.2.3
<!-- missing: nav#primary-navigation -->
medium Broken link: https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces#main returned status 490 Unknown after 1 attempts
<a href="https://www.nyc.gov/opendata/get-started/gallery/featured-projects/Investigating-NYC-s-Privately-Owned-Public-Spaces#main">Skip Main Navigation</a>
medium Interactive control "a.arrow-link.white-link" is only 17px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.arrow-link.white-link>
medium Interactive control "a.sr-only.sr-only-focusable" is only 1px tall at Phone SE. Sonde responsive contract enforces `--sonde-target-size-min` (44px) on touch tiers. WCAG 2.5.8
<a.sr-only.sr-only-focusable>
medium Stuck loading state: loading indicator CSS class on <input> persists after page readiness
<input type="text" name="search-terms" placeholder="Search" id="search-terms" class="input-search input-black filter-item placeholder">
Methodology
The Sonde Score is a universal 0–1000 compliance index — think of it like a credit score for accessibility. Each finding is weighted by its impact on human access: a keyboard trap (critical) counts far more than a best-practice suggestion (low). The raw penalty is normalized per page so scores are comparable across sites of any size. A harmonic curve ensures every site gets a meaningful score — no zeros, no false perfection.
where S = sensitivity (750), P = Σ(weight × count), N = pages scanned
| Tier | Weight | Examples |
|---|---|---|
| Critical | 10 | Keyboard traps, missing page language |
| High | 3 | Missing alt text, insufficient contrast |
| Medium | 1 | Heading hierarchy, unclear link purpose |
| Low | 0.25 | Best-practice suggestions |
The Sonde Score is a living standard (v0.1). We publish the methodology and invite public feedback because accessibility is too important for closed-door decisions. Your expertise makes it better.
Enter Mission Control
Review raw findings data, track changes between scans, and contribute to Sonde’s open methodology.
Nominate a Site for the Daylight Index
Know a public website that should be on the accessibility leaderboard? Nominate it — we’ll scan it and publish the results.