@@ -173,6 +173,42 @@ def _state(
173173 ),
174174)
175175
176+ # The meaningful public read-only states that must render without client-side JavaScript. Keep
177+ # route-contract states (the removed people catalogue and approved redirect) in the complete
178+ # JavaScript-enabled scenario only: they assert an HTTP contract rather than a rendered page.
179+ #
180+ # The Playwright fixture owns the source-backed surface/marker map. Its policy check requires
181+ # this tuple to match that map exactly, so a stale/duplicated/unclassified registry ID fails before
182+ # a browser matrix can silently skip it.
183+ NO_JAVASCRIPT_PUBLIC_STATE_IDS = (
184+ "public.home" ,
185+ "public.blog-hub" ,
186+ "public.podcast-hub" ,
187+ "public.books-hub" ,
188+ "public.events-hub" ,
189+ "public.courses-hub" ,
190+ "public.wiki-hub" ,
191+ "public.docs-hub" ,
192+ "public.faq-hub" ,
193+ "public.slack" ,
194+ "public.article-detail" ,
195+ "public.podcast-transcript-media" ,
196+ "public.book-detail" ,
197+ "public.event-aggregate-speaker" ,
198+ "public.person-detail" ,
199+ "public.course-detail" ,
200+ "public.wiki-detail" ,
201+ "public.docs-nested" ,
202+ "public.faq-anchor" ,
203+ "public.wiki-results" ,
204+ "public.wiki-zero-results" ,
205+ "public.wiki-graph" ,
206+ "public.wiki-special-pages" ,
207+ "public.missing-media" ,
208+ "public.empty-state" ,
209+ "public.application-404" ,
210+ )
211+
176212# No exception is accepted by this implementation. Keeping the typed registry here makes any
177213# future exception reviewable and forces all required ownership/expiry fields to be supplied.
178214AXE_EXCEPTIONS : tuple [AxeException , ...] = ()
0 commit comments