Essay 26
The POUR-Audit Framework in Curriculum-as-Code
Treating educational content as software—known as Curriculum-as-Code (CaC)—enables the integration of automated verification pipelines to enforce instructional quality, semantic hierarchy, and digital accessibility. The POUR-Audit framework operationalizes Web Content Accessibility Guidelines (WCAG) into testable, programmatically audited standards directly inside git workflows.
1. Perceivable: Asset Alt-Text Enforcement
Digital equity requires that all instructional media is perceivable. Programmatic scans analyze <img ...> tags in the course fleet:
- Descriptive Text: Every image tag must contain a descriptive
altattribute. - Prohibited Placeholders: Empty placeholders (
alt=""oralt='') are flagged as failures to prevent decorative bypass of active educational charts.
2. Operable: Navigation and Focus Flow Parity
Operable interfaces ensure that all students can navigate course layouts using keyboard controls and adaptive gear:
- Focus Indicators: Audits verify that interactive elements within custom Canvas containers retain highly visible focus rings.
- Focus Traps: Programmatic checks scan script bindings to ensure custom modal layers do not create keyboard focus traps.
3. Understandable: Legacy Term Deprecation
To maintain clear and accurate instructional pathways, the audit monitors prohibited legacy terms and references:
- Legacy Patterns: References containing deprecated structural patterns (such as
"8.#"-style module references) are checked and flagged. - Unified Terminology: Ensures course fleet documentation aligns with current academic sources of truth (SSoT).
4. Robust: Semantic Structure and Hierarchy
A robust curriculum is built on standard HTML5 landmarks that assistive technologies can parse reliably. The audit checks heading structures to confirm strict semantic progression:
- Entry Constraints: The content body must start with a
##(H2) heading level. H1 is reserved exclusively for the Canvas LMS Page Title. - Structural Parity: Audits scan header trees programmatically, ensuring no skipped heading levels (e.g. from H2 to H4) exist, which disorients screen readers.