w3c / wcag

Web Content Accessibility Guidelines
https://w3c.github.io/wcag/guidelines/22/
Other
1.05k stars 232 forks source link

Empty sections in source documents (causing broken ToC links in XSLT output) #3927

Open kfranqueiro opened 1 week ago

kfranqueiro commented 1 week ago

Several source documents contain sections that are effectively empty, containing only a heading and possibly a placeholder instructions paragraph or list item.

Both the XSLT and Eleventy build processes clean these up, although in the case of the XSLT process it sometimes results in "phantom" table of contents links that lack a corresponding destination.

If this is something there is interest in cleaning up, I can probably work on getting some verbose output from the Eleventy process to point to what needs cleaning.

patrickhlauke commented 1 week ago

I'd be up for a clean-up. It's the sort of wide-reaching, tedious task i quite enjoy sometimes

kfranqueiro commented 1 week ago

Here's what I get with some temporary logging added to the Eleventy build process. (Only some of these cause phantom ToC links in the XSLT process)

Expand for log
./understanding/20/abbreviations.html: Empty subsection: advisory
./understanding/20/abbreviations.html: Empty subsection: failure
./understanding/20/audio-control.html: Empty subsection: advisory
./understanding/20/audio-control.html: Empty top-level section: resources
./understanding/20/audio-description-or-media-alternative-prerecorded.html: Empty subsection: failure
./understanding/20/audio-description-prerecorded.html: Empty subsection: failure
./understanding/20/audio-only-live.html: Empty subsection: advisory
./understanding/20/audio-only-live.html: Empty subsection: failure
./understanding/20/captions-live.html: Empty subsection: advisory
./understanding/20/captions-live.html: Empty subsection: failure
./understanding/20/bypass-blocks.html: Empty subsection: failure
./understanding/20/captions-prerecorded.html: Empty subsection: advisory
./understanding/20/compatible.html: Empty top-level section: advisory
./understanding/20/consistent-identification.html: Empty subsection: advisory
./understanding/20/consistent-identification.html: Empty top-level section: resources
./understanding/20/contrast-enhanced.html: Empty top-level section: examples
./understanding/20/distinguishable.html: Empty top-level section: advisory
./understanding/20/enough-time.html: Empty top-level section: advisory
./understanding/20/error-prevention-all.html: Empty top-level section: examples
./understanding/20/error-prevention-all.html: Empty top-level section: resources
./understanding/20/error-identification.html: Empty subsection: failure
./understanding/20/error-identification.html: Empty top-level section: resources
./understanding/20/error-prevention-legal-financial-data.html: Empty subsection: failure
./understanding/20/error-prevention-legal-financial-data.html: Empty top-level section: resources
./understanding/20/extended-audio-description-prerecorded.html: Empty subsection: failure
./understanding/20/error-suggestion.html: Empty subsection: failure
./understanding/20/error-suggestion.html: Empty top-level section: resources
./understanding/20/focus-order.html: Empty subsection: advisory
./understanding/20/focus-order.html: Empty top-level section: resources
./understanding/20/focus-visible.html: Empty subsection: advisory
./understanding/20/help.html: Empty subsection: failure
./understanding/20/help.html: Empty top-level section: resources
./understanding/20/headings-and-labels.html: Empty subsection: advisory
./understanding/20/headings-and-labels.html: Empty subsection: failure
./understanding/20/images-of-text-no-exception.html: Empty subsection: failure
./understanding/20/images-of-text.html: Empty subsection: failure
./understanding/20/interruptions.html: Empty subsection: advisory
./understanding/20/interruptions.html: Empty top-level section: resources
./understanding/20/input-assistance.html: Empty top-level section: advisory
./understanding/20/keyboard.html: Empty top-level section: resources
./understanding/20/keyboard-no-exception.html: Empty top-level section: examples
./understanding/20/keyboard-no-exception.html: Empty top-level section: resources
./understanding/20/labels-or-instructions.html: Empty top-level section: resources
./understanding/20/language-of-page.html: Empty subsection: failure
./understanding/20/language-of-parts.html: Empty subsection: advisory
./understanding/20/language-of-parts.html: Empty subsection: failure
./understanding/20/location.html: Empty subsection: failure
./understanding/20/low-or-no-background-audio.html: Empty subsection: advisory
./understanding/20/low-or-no-background-audio.html: Empty subsection: failure
./understanding/20/low-or-no-background-audio.html: Empty top-level section: examples
./understanding/20/meaningful-sequence.html: Empty subsection: advisory
./understanding/20/meaningful-sequence.html: Empty top-level section: resources
./understanding/20/media-alternative-prerecorded.html: Empty subsection: advisory
./understanding/20/navigable.html: Empty top-level section: advisory
./understanding/20/name-role-value.html: Empty subsection: advisory
./understanding/20/no-timing.html: Empty subsection: advisory
./understanding/20/no-timing.html: Empty subsection: failure
./understanding/20/no-timing.html: Empty top-level section: resources
./understanding/20/no-keyboard-trap.html: Empty subsection: advisory
./understanding/20/no-keyboard-trap.html: Empty top-level section: resources
./understanding/20/on-focus.html: Empty top-level section: resources
./understanding/20/keyboard-accessible.html: Empty top-level section: advisory
./understanding/20/parsing.html: Empty subsection: advisory
./understanding/20/parsing.html: Empty top-level section: examples
./understanding/20/parsing.html: Empty top-level section: resources
./understanding/20/pause-stop-hide.html: Empty subsection: advisory
./understanding/20/pause-stop-hide.html: Empty top-level section: resources
./understanding/20/pronunciation.html: Empty subsection: advisory
./understanding/20/pronunciation.html: Empty subsection: failure
./understanding/20/pronunciation.html: Empty top-level section: resources
./understanding/20/re-authenticating.html: Empty subsection: advisory
./understanding/20/re-authenticating.html: Empty top-level section: resources
./understanding/20/readable.html: Empty top-level section: advisory
./understanding/20/reading-level.html: Empty subsection: advisory
./understanding/20/reading-level.html: Empty subsection: failure
./understanding/20/on-input.html: Empty top-level section: resources
./understanding/20/section-headings.html: Empty subsection: advisory
./understanding/20/section-headings.html: Empty subsection: failure
./understanding/20/sensory-characteristics.html: Empty subsection: advisory
./understanding/20/sensory-characteristics.html: Empty top-level section: resources
./understanding/20/sign-language-prerecorded.html: Empty subsection: advisory
./understanding/20/sign-language-prerecorded.html: Empty subsection: failure
./understanding/20/three-flashes-or-below-threshold.html: Empty subsection: advisory
./understanding/20/three-flashes-or-below-threshold.html: Empty subsection: failure
./understanding/20/text-alternatives.html: Empty top-level section: advisory
./understanding/20/three-flashes.html: Empty subsection: advisory
./understanding/20/three-flashes.html: Empty subsection: failure
./understanding/20/time-based-media.html: Empty top-level section: advisory
./understanding/20/timing-adjustable.html: Empty subsection: advisory
./understanding/20/timing-adjustable.html: Empty top-level section: resources
./understanding/20/unusual-words.html: Empty subsection: advisory
./understanding/20/unusual-words.html: Empty subsection: failure
./understanding/20/visual-presentation.html: Empty subsection: advisory
./understanding/21/motion-actuation.html: Empty subsection: advisory
./understanding/21/pointer-gestures.html: Empty subsection: advisory
./understanding/21/pointer-gestures.html: Empty top-level section: resources
./understanding/22/accessible-authentication-enhanced.html: Empty subsection: advisory
./understanding/22/accessible-authentication-minimum.html: Empty subsection: advisory
./understanding/22/consistent-help.html: Empty subsection: advisory
./understanding/22/focus-not-obscured-minimum.html: Empty subsection: advisory
./understanding/22/dragging-movements.html: Empty subsection: advisory
./understanding/22/target-size-minimum.html: Empty subsection: advisory
./understanding/22/target-size-minimum.html: Empty subsection: failure
./understanding/22/redundant-entry.html: Empty subsection: advisory
./understanding/22/redundant-entry.html: Empty subsection: failure
./understanding/20/contrast-minimum.html: Empty top-level section: examples
./understanding/20/multiple-ways.html: Empty subsection: failure
./understanding/20/multiple-ways.html: Empty top-level section: resources
./understanding/22/focus-not-obscured-enhanced.html: Empty subsection: advisory
./understanding/22/focus-not-obscured-enhanced.html: Empty top-level section: resources
./techniques/aria/ARIA22.html: Empty top-level section: applicability
./techniques/aria/ARIA23.html: Empty top-level section: applicability
./techniques/client-side-script/SCR36.html: Empty top-level section: tests
./techniques/css/C31.html: Empty top-level section: applicability
./techniques/css/C36.html: Empty top-level section: applicability
./techniques/css/C35.html: Empty top-level section: applicability
./techniques/css/C39.html: Empty top-level section: applicability
./techniques/failures/F75.html: Empty top-level section: examples
./techniques/failures/F94.html: Empty top-level section: applicability