From e545c1f22713c58e95e58350a649acceefd83fa0 Mon Sep 17 00:00:00 2001 From: Ned Zimmerman Date: Mon, 11 Mar 2024 11:34:25 -0300 Subject: [PATCH] feat: add success criteria support to CMS configurations --- .eleventyignore | 1 + .pages.yml | 724 +++++++++++++++++++++++++++++++++++++++++- src/_data/scData.json | 352 ++++++++++++++++++++ src/admin/config.yml | 57 +++- src/pages.njk | 161 ++++++++++ src/report/index.md | 12 +- src/scData.njk | 13 + 7 files changed, 1315 insertions(+), 5 deletions(-) create mode 100644 .eleventyignore create mode 100644 src/_data/scData.json create mode 100644 src/pages.njk create mode 100644 src/scData.njk diff --git a/.eleventyignore b/.eleventyignore new file mode 100644 index 0000000..6bfb733 --- /dev/null +++ b/.eleventyignore @@ -0,0 +1 @@ +src/_data/scData.json diff --git a/.pages.yml b/.pages.yml index 8b13ad7..3736f4f 100644 --- a/.pages.yml +++ b/.pages.yml @@ -67,6 +67,549 @@ content: type: string list: true description: Enter technologies used to build the website. + - name: supported + label: Supported + type: select + list: true + required: false + options: + values: + - value: 1.1.1 + label: "1.1.1: Non-text Content" + - value: 1.2.1 + label: "1.2.1: Audio-only and Video-only (Prerecorded)" + - value: 1.2.2 + label: "1.2.2: Captions (Prerecorded)" + - value: 1.2.3 + label: "1.2.3: Audio Description or Media Alternative (Prerecorded)" + - value: 1.2.4 + label: "1.2.4: Captions (Live)" + - value: 1.2.5 + label: "1.2.5: Audio Description (Prerecorded)" + - value: 1.2.6 + label: "1.2.6: Sign Language (Prerecorded)" + - value: 1.2.7 + label: "1.2.7: Extended Audio Description (Prerecorded)" + - value: 1.2.8 + label: "1.2.8: Media Alternative (Prerecorded)" + - value: 1.2.9 + label: "1.2.9: Audio-only (Live)" + - value: 1.3.1 + label: "1.3.1: Info and Relationships" + - value: 1.3.2 + label: "1.3.2: Meaningful Sequence" + - value: 1.3.3 + label: "1.3.3: Sensory Characteristics" + - value: 1.3.4 + label: "1.3.4: Orientation" + - value: 1.3.5 + label: "1.3.5: Identify Input Purpose" + - value: 1.3.6 + label: "1.3.6: Identify Purpose" + - value: 1.4.1 + label: "1.4.1: Use of Color" + - value: 1.4.2 + label: "1.4.2: Audio Control" + - value: 1.4.3 + label: "1.4.3: Contrast (Minimum)" + - value: 1.4.4 + label: "1.4.4: Resize Text" + - value: 1.4.5 + label: "1.4.5: Images of Text" + - value: 1.4.6 + label: "1.4.6: Contrast (Enhanced)" + - value: 1.4.7 + label: "1.4.7: Low or No Background Audio" + - value: 1.4.8 + label: "1.4.8: Visual Presentation" + - value: 1.4.9 + label: "1.4.9: Images of Text (No Exception)" + - value: 1.4.10 + label: "1.4.10: Reflow" + - value: 1.4.11 + label: "1.4.11: Non-text Contrast" + - value: 1.4.12 + label: "1.4.12: Text Spacing" + - value: 1.4.13 + label: "1.4.13: Content on Hover or Focus" + - value: 2.1.1 + label: "2.1.1: Keyboard" + - value: 2.1.2 + label: "2.1.2: No Keyboard Trap" + - value: 2.1.3 + label: "2.1.3: Keyboard (No Exception)" + - value: 2.1.4 + label: "2.1.4: Character Key Shortcuts" + - value: 2.2.1 + label: "2.2.1: Timing Adjustable" + - value: 2.2.2 + label: "2.2.2: Pause, Stop, Hide" + - value: 2.2.3 + label: "2.2.3: No Timing" + - value: 2.2.4 + label: "2.2.4: Interruptions" + - value: 2.2.5 + label: "2.2.5: Re-authenticating" + - value: 2.2.6 + label: "2.2.6: Timeouts" + - value: 2.3.1 + label: "2.3.1: Three Flashes or Below Threshold" + - value: 2.3.2 + label: "2.3.2: Three Flashes" + - value: 2.3.3 + label: "2.3.3: Animation from Interactions" + - value: 2.4.1 + label: "2.4.1: Bypass Blocks" + - value: 2.4.2 + label: "2.4.2: Page Titled" + - value: 2.4.3 + label: "2.4.3: Focus Order" + - value: 2.4.4 + label: "2.4.4: Link Purpose (In Context)" + - value: 2.4.5 + label: "2.4.5: Multiple Ways" + - value: 2.4.6 + label: "2.4.6: Headings and Labels" + - value: 2.4.7 + label: "2.4.7: Focus Visible" + - value: 2.4.8 + label: "2.4.8: Location" + - value: 2.4.9 + label: "2.4.9: Link Purpose (Link Only)" + - value: 2.4.10 + label: "2.4.10: Section Headings" + - value: 2.4.11 + label: "2.4.11: Focus Not Obscured (Minimum)" + - value: 2.4.12 + label: "2.4.12: Focus Not Obscured (Enhanced)" + - value: 2.4.13 + label: "2.4.13: Focus Appearance" + - value: 2.5.1 + label: "2.5.1: Pointer Gestures" + - value: 2.5.2 + label: "2.5.2: Pointer Cancellation" + - value: 2.5.3 + label: "2.5.3: Label in Name" + - value: 2.5.4 + label: "2.5.4: Motion Actuation" + - value: 2.5.5 + label: "2.5.5: Target Size (Enhanced)" + - value: 2.5.6 + label: "2.5.6: Concurrent Input Mechanisms" + - value: 2.5.7 + label: "2.5.7: Dragging Movements" + - value: 2.5.8 + label: "2.5.8: Target Size (Minimum)" + - value: 3.1.1 + label: "3.1.1: Language of Page" + - value: 3.1.2 + label: "3.1.2: Language of Parts" + - value: 3.1.3 + label: "3.1.3: Unusual Words" + - value: 3.1.4 + label: "3.1.4: Abbreviations" + - value: 3.1.5 + label: "3.1.5: Reading Level" + - value: 3.1.6 + label: "3.1.6: Pronunciation" + - value: 3.2.1 + label: "3.2.1: On Focus" + - value: 3.2.2 + label: "3.2.2: On Input" + - value: 3.2.3 + label: "3.2.3: Consistent Navigation" + - value: 3.2.4 + label: "3.2.4: Consistent Identification" + - value: 3.2.5 + label: "3.2.5: Change on Request" + - value: 3.2.6 + label: "3.2.6: Consistent Help" + - value: 3.3.1 + label: "3.3.1: Error Identification" + - value: 3.3.2 + label: "3.3.2: Labels or Instructions" + - value: 3.3.3 + label: "3.3.3: Error Suggestion" + - value: 3.3.4 + label: "3.3.4: Error Prevention (Legal, Financial, Data)" + - value: 3.3.5 + label: "3.3.5: Help" + - value: 3.3.6 + label: "3.3.6: Error Prevention (All)" + - value: 3.3.7 + label: "3.3.7: Redundant Entry" + - value: 3.3.8 + label: "3.3.8: Accessible Authentication (Minimum)" + - value: 3.3.9 + label: "3.3.9: Accessible Authentication (Enhanced)" + - value: 4.1.1 + label: "4.1.1: Parsing (Obsolete and removed)" + - value: 4.1.2 + label: "4.1.2: Name, Role, Value" + - value: 4.1.3 + label: "4.1.3: Status Messages" + - name: partiallySupported + label: Partially Supported + type: select + list: true + required: false + options: + values: + - value: 1.1.1 + label: "1.1.1: Non-text Content" + - value: 1.2.1 + label: "1.2.1: Audio-only and Video-only (Prerecorded)" + - value: 1.2.2 + label: "1.2.2: Captions (Prerecorded)" + - value: 1.2.3 + label: "1.2.3: Audio Description or Media Alternative (Prerecorded)" + - value: 1.2.4 + label: "1.2.4: Captions (Live)" + - value: 1.2.5 + label: "1.2.5: Audio Description (Prerecorded)" + - value: 1.2.6 + label: "1.2.6: Sign Language (Prerecorded)" + - value: 1.2.7 + label: "1.2.7: Extended Audio Description (Prerecorded)" + - value: 1.2.8 + label: "1.2.8: Media Alternative (Prerecorded)" + - value: 1.2.9 + label: "1.2.9: Audio-only (Live)" + - value: 1.3.1 + label: "1.3.1: Info and Relationships" + - value: 1.3.2 + label: "1.3.2: Meaningful Sequence" + - value: 1.3.3 + label: "1.3.3: Sensory Characteristics" + - value: 1.3.4 + label: "1.3.4: Orientation" + - value: 1.3.5 + label: "1.3.5: Identify Input Purpose" + - value: 1.3.6 + label: "1.3.6: Identify Purpose" + - value: 1.4.1 + label: "1.4.1: Use of Color" + - value: 1.4.2 + label: "1.4.2: Audio Control" + - value: 1.4.3 + label: "1.4.3: Contrast (Minimum)" + - value: 1.4.4 + label: "1.4.4: Resize Text" + - value: 1.4.5 + label: "1.4.5: Images of Text" + - value: 1.4.6 + label: "1.4.6: Contrast (Enhanced)" + - value: 1.4.7 + label: "1.4.7: Low or No Background Audio" + - value: 1.4.8 + label: "1.4.8: Visual Presentation" + - value: 1.4.9 + label: "1.4.9: Images of Text (No Exception)" + - value: 1.4.10 + label: "1.4.10: Reflow" + - value: 1.4.11 + label: "1.4.11: Non-text Contrast" + - value: 1.4.12 + label: "1.4.12: Text Spacing" + - value: 1.4.13 + label: "1.4.13: Content on Hover or Focus" + - value: 2.1.1 + label: "2.1.1: Keyboard" + - value: 2.1.2 + label: "2.1.2: No Keyboard Trap" + - value: 2.1.3 + label: "2.1.3: Keyboard (No Exception)" + - value: 2.1.4 + label: "2.1.4: Character Key Shortcuts" + - value: 2.2.1 + label: "2.2.1: Timing Adjustable" + - value: 2.2.2 + label: "2.2.2: Pause, Stop, Hide" + - value: 2.2.3 + label: "2.2.3: No Timing" + - value: 2.2.4 + label: "2.2.4: Interruptions" + - value: 2.2.5 + label: "2.2.5: Re-authenticating" + - value: 2.2.6 + label: "2.2.6: Timeouts" + - value: 2.3.1 + label: "2.3.1: Three Flashes or Below Threshold" + - value: 2.3.2 + label: "2.3.2: Three Flashes" + - value: 2.3.3 + label: "2.3.3: Animation from Interactions" + - value: 2.4.1 + label: "2.4.1: Bypass Blocks" + - value: 2.4.2 + label: "2.4.2: Page Titled" + - value: 2.4.3 + label: "2.4.3: Focus Order" + - value: 2.4.4 + label: "2.4.4: Link Purpose (In Context)" + - value: 2.4.5 + label: "2.4.5: Multiple Ways" + - value: 2.4.6 + label: "2.4.6: Headings and Labels" + - value: 2.4.7 + label: "2.4.7: Focus Visible" + - value: 2.4.8 + label: "2.4.8: Location" + - value: 2.4.9 + label: "2.4.9: Link Purpose (Link Only)" + - value: 2.4.10 + label: "2.4.10: Section Headings" + - value: 2.4.11 + label: "2.4.11: Focus Not Obscured (Minimum)" + - value: 2.4.12 + label: "2.4.12: Focus Not Obscured (Enhanced)" + - value: 2.4.13 + label: "2.4.13: Focus Appearance" + - value: 2.5.1 + label: "2.5.1: Pointer Gestures" + - value: 2.5.2 + label: "2.5.2: Pointer Cancellation" + - value: 2.5.3 + label: "2.5.3: Label in Name" + - value: 2.5.4 + label: "2.5.4: Motion Actuation" + - value: 2.5.5 + label: "2.5.5: Target Size (Enhanced)" + - value: 2.5.6 + label: "2.5.6: Concurrent Input Mechanisms" + - value: 2.5.7 + label: "2.5.7: Dragging Movements" + - value: 2.5.8 + label: "2.5.8: Target Size (Minimum)" + - value: 3.1.1 + label: "3.1.1: Language of Page" + - value: 3.1.2 + label: "3.1.2: Language of Parts" + - value: 3.1.3 + label: "3.1.3: Unusual Words" + - value: 3.1.4 + label: "3.1.4: Abbreviations" + - value: 3.1.5 + label: "3.1.5: Reading Level" + - value: 3.1.6 + label: "3.1.6: Pronunciation" + - value: 3.2.1 + label: "3.2.1: On Focus" + - value: 3.2.2 + label: "3.2.2: On Input" + - value: 3.2.3 + label: "3.2.3: Consistent Navigation" + - value: 3.2.4 + label: "3.2.4: Consistent Identification" + - value: 3.2.5 + label: "3.2.5: Change on Request" + - value: 3.2.6 + label: "3.2.6: Consistent Help" + - value: 3.3.1 + label: "3.3.1: Error Identification" + - value: 3.3.2 + label: "3.3.2: Labels or Instructions" + - value: 3.3.3 + label: "3.3.3: Error Suggestion" + - value: 3.3.4 + label: "3.3.4: Error Prevention (Legal, Financial, Data)" + - value: 3.3.5 + label: "3.3.5: Help" + - value: 3.3.6 + label: "3.3.6: Error Prevention (All)" + - value: 3.3.7 + label: "3.3.7: Redundant Entry" + - value: 3.3.8 + label: "3.3.8: Accessible Authentication (Minimum)" + - value: 3.3.9 + label: "3.3.9: Accessible Authentication (Enhanced)" + - value: 4.1.1 + label: "4.1.1: Parsing (Obsolete and removed)" + - value: 4.1.2 + label: "4.1.2: Name, Role, Value" + - value: 4.1.3 + label: "4.1.3: Status Messages" + - name: unsupported + label: Unsupported + type: select + list: true + required: false + options: + values: + - value: 1.1.1 + label: "1.1.1: Non-text Content" + - value: 1.2.1 + label: "1.2.1: Audio-only and Video-only (Prerecorded)" + - value: 1.2.2 + label: "1.2.2: Captions (Prerecorded)" + - value: 1.2.3 + label: "1.2.3: Audio Description or Media Alternative (Prerecorded)" + - value: 1.2.4 + label: "1.2.4: Captions (Live)" + - value: 1.2.5 + label: "1.2.5: Audio Description (Prerecorded)" + - value: 1.2.6 + label: "1.2.6: Sign Language (Prerecorded)" + - value: 1.2.7 + label: "1.2.7: Extended Audio Description (Prerecorded)" + - value: 1.2.8 + label: "1.2.8: Media Alternative (Prerecorded)" + - value: 1.2.9 + label: "1.2.9: Audio-only (Live)" + - value: 1.3.1 + label: "1.3.1: Info and Relationships" + - value: 1.3.2 + label: "1.3.2: Meaningful Sequence" + - value: 1.3.3 + label: "1.3.3: Sensory Characteristics" + - value: 1.3.4 + label: "1.3.4: Orientation" + - value: 1.3.5 + label: "1.3.5: Identify Input Purpose" + - value: 1.3.6 + label: "1.3.6: Identify Purpose" + - value: 1.4.1 + label: "1.4.1: Use of Color" + - value: 1.4.2 + label: "1.4.2: Audio Control" + - value: 1.4.3 + label: "1.4.3: Contrast (Minimum)" + - value: 1.4.4 + label: "1.4.4: Resize Text" + - value: 1.4.5 + label: "1.4.5: Images of Text" + - value: 1.4.6 + label: "1.4.6: Contrast (Enhanced)" + - value: 1.4.7 + label: "1.4.7: Low or No Background Audio" + - value: 1.4.8 + label: "1.4.8: Visual Presentation" + - value: 1.4.9 + label: "1.4.9: Images of Text (No Exception)" + - value: 1.4.10 + label: "1.4.10: Reflow" + - value: 1.4.11 + label: "1.4.11: Non-text Contrast" + - value: 1.4.12 + label: "1.4.12: Text Spacing" + - value: 1.4.13 + label: "1.4.13: Content on Hover or Focus" + - value: 2.1.1 + label: "2.1.1: Keyboard" + - value: 2.1.2 + label: "2.1.2: No Keyboard Trap" + - value: 2.1.3 + label: "2.1.3: Keyboard (No Exception)" + - value: 2.1.4 + label: "2.1.4: Character Key Shortcuts" + - value: 2.2.1 + label: "2.2.1: Timing Adjustable" + - value: 2.2.2 + label: "2.2.2: Pause, Stop, Hide" + - value: 2.2.3 + label: "2.2.3: No Timing" + - value: 2.2.4 + label: "2.2.4: Interruptions" + - value: 2.2.5 + label: "2.2.5: Re-authenticating" + - value: 2.2.6 + label: "2.2.6: Timeouts" + - value: 2.3.1 + label: "2.3.1: Three Flashes or Below Threshold" + - value: 2.3.2 + label: "2.3.2: Three Flashes" + - value: 2.3.3 + label: "2.3.3: Animation from Interactions" + - value: 2.4.1 + label: "2.4.1: Bypass Blocks" + - value: 2.4.2 + label: "2.4.2: Page Titled" + - value: 2.4.3 + label: "2.4.3: Focus Order" + - value: 2.4.4 + label: "2.4.4: Link Purpose (In Context)" + - value: 2.4.5 + label: "2.4.5: Multiple Ways" + - value: 2.4.6 + label: "2.4.6: Headings and Labels" + - value: 2.4.7 + label: "2.4.7: Focus Visible" + - value: 2.4.8 + label: "2.4.8: Location" + - value: 2.4.9 + label: "2.4.9: Link Purpose (Link Only)" + - value: 2.4.10 + label: "2.4.10: Section Headings" + - value: 2.4.11 + label: "2.4.11: Focus Not Obscured (Minimum)" + - value: 2.4.12 + label: "2.4.12: Focus Not Obscured (Enhanced)" + - value: 2.4.13 + label: "2.4.13: Focus Appearance" + - value: 2.5.1 + label: "2.5.1: Pointer Gestures" + - value: 2.5.2 + label: "2.5.2: Pointer Cancellation" + - value: 2.5.3 + label: "2.5.3: Label in Name" + - value: 2.5.4 + label: "2.5.4: Motion Actuation" + - value: 2.5.5 + label: "2.5.5: Target Size (Enhanced)" + - value: 2.5.6 + label: "2.5.6: Concurrent Input Mechanisms" + - value: 2.5.7 + label: "2.5.7: Dragging Movements" + - value: 2.5.8 + label: "2.5.8: Target Size (Minimum)" + - value: 3.1.1 + label: "3.1.1: Language of Page" + - value: 3.1.2 + label: "3.1.2: Language of Parts" + - value: 3.1.3 + label: "3.1.3: Unusual Words" + - value: 3.1.4 + label: "3.1.4: Abbreviations" + - value: 3.1.5 + label: "3.1.5: Reading Level" + - value: 3.1.6 + label: "3.1.6: Pronunciation" + - value: 3.2.1 + label: "3.2.1: On Focus" + - value: 3.2.2 + label: "3.2.2: On Input" + - value: 3.2.3 + label: "3.2.3: Consistent Navigation" + - value: 3.2.4 + label: "3.2.4: Consistent Identification" + - value: 3.2.5 + label: "3.2.5: Change on Request" + - value: 3.2.6 + label: "3.2.6: Consistent Help" + - value: 3.3.1 + label: "3.3.1: Error Identification" + - value: 3.3.2 + label: "3.3.2: Labels or Instructions" + - value: 3.3.3 + label: "3.3.3: Error Suggestion" + - value: 3.3.4 + label: "3.3.4: Error Prevention (Legal, Financial, Data)" + - value: 3.3.5 + label: "3.3.5: Help" + - value: 3.3.6 + label: "3.3.6: Error Prevention (All)" + - value: 3.3.7 + label: "3.3.7: Redundant Entry" + - value: 3.3.8 + label: "3.3.8: Accessible Authentication (Minimum)" + - value: 3.3.9 + label: "3.3.9: Accessible Authentication (Enhanced)" + - value: 4.1.1 + label: "4.1.1: Parsing (Obsolete and removed)" + - value: 4.1.2 + label: "4.1.2: Name, Role, Value" + - value: 4.1.3 + label: "4.1.3: Status Messages" - name: issuesUrl label: Issues link type: string @@ -78,7 +621,186 @@ content: type: collection fields: - { label: Title, name: title, type: string } - - { label: Success Criteria, name: sc, type: string, list: true } + - label: Success Criteria + name: sc + type: select + list: true + options: + values: + - value: 1.1.1 + label: "1.1.1: Non-text Content" + - value: 1.2.1 + label: "1.2.1: Audio-only and Video-only (Prerecorded)" + - value: 1.2.2 + label: "1.2.2: Captions (Prerecorded)" + - value: 1.2.3 + label: "1.2.3: Audio Description or Media Alternative (Prerecorded)" + - value: 1.2.4 + label: "1.2.4: Captions (Live)" + - value: 1.2.5 + label: "1.2.5: Audio Description (Prerecorded)" + - value: 1.2.6 + label: "1.2.6: Sign Language (Prerecorded)" + - value: 1.2.7 + label: "1.2.7: Extended Audio Description (Prerecorded)" + - value: 1.2.8 + label: "1.2.8: Media Alternative (Prerecorded)" + - value: 1.2.9 + label: "1.2.9: Audio-only (Live)" + - value: 1.3.1 + label: "1.3.1: Info and Relationships" + - value: 1.3.2 + label: "1.3.2: Meaningful Sequence" + - value: 1.3.3 + label: "1.3.3: Sensory Characteristics" + - value: 1.3.4 + label: "1.3.4: Orientation" + - value: 1.3.5 + label: "1.3.5: Identify Input Purpose" + - value: 1.3.6 + label: "1.3.6: Identify Purpose" + - value: 1.4.1 + label: "1.4.1: Use of Color" + - value: 1.4.2 + label: "1.4.2: Audio Control" + - value: 1.4.3 + label: "1.4.3: Contrast (Minimum)" + - value: 1.4.4 + label: "1.4.4: Resize Text" + - value: 1.4.5 + label: "1.4.5: Images of Text" + - value: 1.4.6 + label: "1.4.6: Contrast (Enhanced)" + - value: 1.4.7 + label: "1.4.7: Low or No Background Audio" + - value: 1.4.8 + label: "1.4.8: Visual Presentation" + - value: 1.4.9 + label: "1.4.9: Images of Text (No Exception)" + - value: 1.4.10 + label: "1.4.10: Reflow" + - value: 1.4.11 + label: "1.4.11: Non-text Contrast" + - value: 1.4.12 + label: "1.4.12: Text Spacing" + - value: 1.4.13 + label: "1.4.13: Content on Hover or Focus" + - value: 2.1.1 + label: "2.1.1: Keyboard" + - value: 2.1.2 + label: "2.1.2: No Keyboard Trap" + - value: 2.1.3 + label: "2.1.3: Keyboard (No Exception)" + - value: 2.1.4 + label: "2.1.4: Character Key Shortcuts" + - value: 2.2.1 + label: "2.2.1: Timing Adjustable" + - value: 2.2.2 + label: "2.2.2: Pause, Stop, Hide" + - value: 2.2.3 + label: "2.2.3: No Timing" + - value: 2.2.4 + label: "2.2.4: Interruptions" + - value: 2.2.5 + label: "2.2.5: Re-authenticating" + - value: 2.2.6 + label: "2.2.6: Timeouts" + - value: 2.3.1 + label: "2.3.1: Three Flashes or Below Threshold" + - value: 2.3.2 + label: "2.3.2: Three Flashes" + - value: 2.3.3 + label: "2.3.3: Animation from Interactions" + - value: 2.4.1 + label: "2.4.1: Bypass Blocks" + - value: 2.4.2 + label: "2.4.2: Page Titled" + - value: 2.4.3 + label: "2.4.3: Focus Order" + - value: 2.4.4 + label: "2.4.4: Link Purpose (In Context)" + - value: 2.4.5 + label: "2.4.5: Multiple Ways" + - value: 2.4.6 + label: "2.4.6: Headings and Labels" + - value: 2.4.7 + label: "2.4.7: Focus Visible" + - value: 2.4.8 + label: "2.4.8: Location" + - value: 2.4.9 + label: "2.4.9: Link Purpose (Link Only)" + - value: 2.4.10 + label: "2.4.10: Section Headings" + - value: 2.4.11 + label: "2.4.11: Focus Not Obscured (Minimum)" + - value: 2.4.12 + label: "2.4.12: Focus Not Obscured (Enhanced)" + - value: 2.4.13 + label: "2.4.13: Focus Appearance" + - value: 2.5.1 + label: "2.5.1: Pointer Gestures" + - value: 2.5.2 + label: "2.5.2: Pointer Cancellation" + - value: 2.5.3 + label: "2.5.3: Label in Name" + - value: 2.5.4 + label: "2.5.4: Motion Actuation" + - value: 2.5.5 + label: "2.5.5: Target Size (Enhanced)" + - value: 2.5.6 + label: "2.5.6: Concurrent Input Mechanisms" + - value: 2.5.7 + label: "2.5.7: Dragging Movements" + - value: 2.5.8 + label: "2.5.8: Target Size (Minimum)" + - value: 3.1.1 + label: "3.1.1: Language of Page" + - value: 3.1.2 + label: "3.1.2: Language of Parts" + - value: 3.1.3 + label: "3.1.3: Unusual Words" + - value: 3.1.4 + label: "3.1.4: Abbreviations" + - value: 3.1.5 + label: "3.1.5: Reading Level" + - value: 3.1.6 + label: "3.1.6: Pronunciation" + - value: 3.2.1 + label: "3.2.1: On Focus" + - value: 3.2.2 + label: "3.2.2: On Input" + - value: 3.2.3 + label: "3.2.3: Consistent Navigation" + - value: 3.2.4 + label: "3.2.4: Consistent Identification" + - value: 3.2.5 + label: "3.2.5: Change on Request" + - value: 3.2.6 + label: "3.2.6: Consistent Help" + - value: 3.3.1 + label: "3.3.1: Error Identification" + - value: 3.3.2 + label: "3.3.2: Labels or Instructions" + - value: 3.3.3 + label: "3.3.3: Error Suggestion" + - value: 3.3.4 + label: "3.3.4: Error Prevention (Legal, Financial, Data)" + - value: 3.3.5 + label: "3.3.5: Help" + - value: 3.3.6 + label: "3.3.6: Error Prevention (All)" + - value: 3.3.7 + label: "3.3.7: Redundant Entry" + - value: 3.3.8 + label: "3.3.8: Accessible Authentication (Minimum)" + - value: 3.3.9 + label: "3.3.9: Accessible Authentication (Enhanced)" + - value: 4.1.1 + label: "4.1.1: Parsing (Obsolete and removed)" + - value: 4.1.2 + label: "4.1.2: Name, Role, Value" + - value: 4.1.3 + label: "4.1.3: Status Messages" - { label: Severity, name: severity, diff --git a/src/_data/scData.json b/src/_data/scData.json new file mode 100644 index 0000000..4ace659 --- /dev/null +++ b/src/_data/scData.json @@ -0,0 +1,352 @@ +{ + "successCriteria": [ + { + "number": "1.1.1", + "name": "Non-text Content" + }, + { + "number": "1.2.1", + "name": "Audio-only and Video-only (Prerecorded)" + }, + { + "number": "1.2.2", + "name": "Captions (Prerecorded)" + }, + { + "number": "1.2.3", + "name": "Audio Description or Media Alternative (Prerecorded)" + }, + { + "number": "1.2.4", + "name": "Captions (Live)" + }, + { + "number": "1.2.5", + "name": "Audio Description (Prerecorded)" + }, + { + "number": "1.2.6", + "name": "Sign Language (Prerecorded)" + }, + { + "number": "1.2.7", + "name": "Extended Audio Description (Prerecorded)" + }, + { + "number": "1.2.8", + "name": "Media Alternative (Prerecorded)" + }, + { + "number": "1.2.9", + "name": "Audio-only (Live)" + }, + { + "number": "1.3.1", + "name": "Info and Relationships" + }, + { + "number": "1.3.2", + "name": "Meaningful Sequence" + }, + { + "number": "1.3.3", + "name": "Sensory Characteristics" + }, + { + "number": "1.3.4", + "name": "Orientation" + }, + { + "number": "1.3.5", + "name": "Identify Input Purpose" + }, + { + "number": "1.3.6", + "name": "Identify Purpose" + }, + { + "number": "1.4.1", + "name": "Use of Color" + }, + { + "number": "1.4.2", + "name": "Audio Control" + }, + { + "number": "1.4.3", + "name": "Contrast (Minimum)" + }, + { + "number": "1.4.4", + "name": "Resize Text" + }, + { + "number": "1.4.5", + "name": "Images of Text" + }, + { + "number": "1.4.6", + "name": "Contrast (Enhanced)" + }, + { + "number": "1.4.7", + "name": "Low or No Background Audio" + }, + { + "number": "1.4.8", + "name": "Visual Presentation" + }, + { + "number": "1.4.9", + "name": "Images of Text (No Exception)" + }, + { + "number": "1.4.10", + "name": "Reflow" + }, + { + "number": "1.4.11", + "name": "Non-text Contrast" + }, + { + "number": "1.4.12", + "name": "Text Spacing" + }, + { + "number": "1.4.13", + "name": "Content on Hover or Focus" + }, + { + "number": "2.1.1", + "name": "Keyboard" + }, + { + "number": "2.1.2", + "name": "No Keyboard Trap" + }, + { + "number": "2.1.3", + "name": "Keyboard (No Exception)" + }, + { + "number": "2.1.4", + "name": "Character Key Shortcuts" + }, + { + "number": "2.2.1", + "name": "Timing Adjustable" + }, + { + "number": "2.2.2", + "name": "Pause, Stop, Hide" + }, + { + "number": "2.2.3", + "name": "No Timing" + }, + { + "number": "2.2.4", + "name": "Interruptions" + }, + { + "number": "2.2.5", + "name": "Re-authenticating" + }, + { + "number": "2.2.6", + "name": "Timeouts" + }, + { + "number": "2.3.1", + "name": "Three Flashes or Below Threshold" + }, + { + "number": "2.3.2", + "name": "Three Flashes" + }, + { + "number": "2.3.3", + "name": "Animation from Interactions" + }, + { + "number": "2.4.1", + "name": "Bypass Blocks" + }, + { + "number": "2.4.2", + "name": "Page Titled" + }, + { + "number": "2.4.3", + "name": "Focus Order" + }, + { + "number": "2.4.4", + "name": "Link Purpose (In Context)" + }, + { + "number": "2.4.5", + "name": "Multiple Ways" + }, + { + "number": "2.4.6", + "name": "Headings and Labels" + }, + { + "number": "2.4.7", + "name": "Focus Visible" + }, + { + "number": "2.4.8", + "name": "Location" + }, + { + "number": "2.4.9", + "name": "Link Purpose (Link Only)" + }, + { + "number": "2.4.10", + "name": "Section Headings" + }, + { + "number": "2.4.11", + "name": "Focus Not Obscured (Minimum)" + }, + { + "number": "2.4.12", + "name": "Focus Not Obscured (Enhanced)" + }, + { + "number": "2.4.13", + "name": "Focus Appearance" + }, + { + "number": "2.5.1", + "name": "Pointer Gestures" + }, + { + "number": "2.5.2", + "name": "Pointer Cancellation" + }, + { + "number": "2.5.3", + "name": "Label in Name" + }, + { + "number": "2.5.4", + "name": "Motion Actuation" + }, + { + "number": "2.5.5", + "name": "Target Size (Enhanced)" + }, + { + "number": "2.5.6", + "name": "Concurrent Input Mechanisms" + }, + { + "number": "2.5.7", + "name": "Dragging Movements" + }, + { + "number": "2.5.8", + "name": "Target Size (Minimum)" + }, + { + "number": "3.1.1", + "name": "Language of Page" + }, + { + "number": "3.1.2", + "name": "Language of Parts" + }, + { + "number": "3.1.3", + "name": "Unusual Words" + }, + { + "number": "3.1.4", + "name": "Abbreviations" + }, + { + "number": "3.1.5", + "name": "Reading Level" + }, + { + "number": "3.1.6", + "name": "Pronunciation" + }, + { + "number": "3.2.1", + "name": "On Focus" + }, + { + "number": "3.2.2", + "name": "On Input" + }, + { + "number": "3.2.3", + "name": "Consistent Navigation" + }, + { + "number": "3.2.4", + "name": "Consistent Identification" + }, + { + "number": "3.2.5", + "name": "Change on Request" + }, + { + "number": "3.2.6", + "name": "Consistent Help" + }, + { + "number": "3.3.1", + "name": "Error Identification" + }, + { + "number": "3.3.2", + "name": "Labels or Instructions" + }, + { + "number": "3.3.3", + "name": "Error Suggestion" + }, + { + "number": "3.3.4", + "name": "Error Prevention (Legal, Financial, Data)" + }, + { + "number": "3.3.5", + "name": "Help" + }, + { + "number": "3.3.6", + "name": "Error Prevention (All)" + }, + { + "number": "3.3.7", + "name": "Redundant Entry" + }, + { + "number": "3.3.8", + "name": "Accessible Authentication (Minimum)" + }, + { + "number": "3.3.9", + "name": "Accessible Authentication (Enhanced)" + }, + { + "number": "4.1.1", + "name": "Parsing (Obsolete and removed)" + }, + { + "number": "4.1.2", + "name": "Name, Role, Value" + }, + { + "number": "4.1.3", + "name": "Status Messages" + } + ] +} diff --git a/src/admin/config.yml b/src/admin/config.yml index 38891d1..8508202 100644 --- a/src/admin/config.yml +++ b/src/admin/config.yml @@ -76,11 +76,58 @@ collections: widget: list default: [HTML, CSS, JavaScript, WAI-ARIA, SVG] hint: Enter technologies used to build the website in a comma-separated list. + - name: supported + label: Supported + widget: relation + multiple: true + collection: report + file: scData + value_field: successCriteria.*.number + search_fields: [successCriteria.*.number, successCriteria.*.name] + display_fields: [successCriteria.*.number, successCriteria.*.name] + required: false + - name: partiallySupported + label: Partially Supported + widget: relation + multiple: true + collection: report + file: scData + value_field: successCriteria.*.number + search_fields: [successCriteria.*.number, successCriteria.*.name] + display_fields: [successCriteria.*.number, successCriteria.*.name] + required: false + - name: unsupported + label: Unsupported + widget: relation + multiple: true + collection: report + file: scData + value_field: successCriteria.*.number + search_fields: [successCriteria.*.number, successCriteria.*.name] + display_fields: [successCriteria.*.number, successCriteria.*.name] + required: false - name: issuesUrl label: Issues link widget: string hint: Enter the link to the website's GitHub repository or Gitlab repository. required: false + - label: Success Criteria + name: scData + file: src/_data/scData.json + editor: + preview: false + fields: + - name: successCriteria + label: Success Criteria + summary: '{{fields.number}} {{fields.name}}' + widget: list + fields: + - name: number + label: Number + widget: string + - name: name + label: Name + widget: string - label: Issues label_singular: Issue name: issue @@ -89,7 +136,15 @@ collections: create: true fields: - { label: Title, name: title, widget: string } - - { label: Success Criteria, name: sc, widget: string } + - label: Success Criteria + name: sc + widget: relation + multiple: true + collection: report + file: scData + value_field: successCriteria.*.number + search_fields: [successCriteria.*.number, successCriteria.*.name] + display_fields: [successCriteria.*.number, successCriteria.*.name] - { label: Severity, name: severity, diff --git a/src/pages.njk b/src/pages.njk new file mode 100644 index 0000000..d7a6485 --- /dev/null +++ b/src/pages.njk @@ -0,0 +1,161 @@ +--- +permalink: ../.pages.yml +--- +content: + - label: About + name: about + type: file + path: src/_includes/about.md + fields: + - name: body + label: About this report + type: rich-text + - label: Report Data + name: reportData + type: file + path: src/report/index.md + fields: + - name: "evaluators" + label: "Evaluators" + type: "string" + list: true + - name: "commissioner" + label: "Commissioner" + type: "string" + - name: targetLevel + label: Target Level + type: select + options: + values: [A, AA, AAA] + - name: targetWcagVersion + label: Target WCAG Version + type: select + options: + values: ["2.0", "2.1", "2.2"] + - name: date + label: Date + type: date + - name: specialRequirements + label: Special Requirements + type: text + - name: body + label: Executive summary + type: rich-text + - name: scope + label: In scope + type: object + list: true + fields: + - { name: "title", label: "Title", type: "string" } + - { name: "url", label: "URL", type: "string" } + - { name: "description", label: "Description", type: "text", required: false } + - name: outOfScope + label: Out of scope + type: object + list: true + fields: + - { name: "title", label: "Title", type: "string" } + - { name: "url", label: "URL", type: "string" } + - { name: "description", label: "Description", type: "text", required: false } + - name: tools + label: Tools used + type: object + list: true + fields: + - { name: "name", label: "Name", type: "string" } + - { name: "version", label: "Version", type: "string", required: false } + description: Enter browsers and assistive technologies used in auditing the website. + - name: technologies + label: Technologies used + type: string + list: true + description: Enter technologies used to build the website. + - name: supported + label: Supported + type: select + list: true + required: false + options: + values: +{%- for number, sc in successcriteria %} + - value: {{ number }} + label: "{{ number }}: {{ sc.name }}" +{%- endfor %} + - name: partiallySupported + label: Partially Supported + type: select + list: true + required: false + options: + values: +{%- for number, sc in successcriteria %} + - value: {{ number }} + label: "{{ number }}: {{ sc.name }}" +{%- endfor %} + - name: unsupported + label: Unsupported + type: select + list: true + required: false + options: + values: +{%- for number, sc in successcriteria %} + - value: {{ number }} + label: "{{ number }}: {{ sc.name }}" +{%- endfor %} + - name: issuesUrl + label: Issues link + type: string + description: Enter the link to the website's GitHub repository or Gitlab repository. + required: false + - label: Issues + name: issue + path: src/report/issues + type: collection + fields: + - { label: Title, name: title, type: string } + - label: Success Criteria + name: sc + type: select + list: true + options: + values: +{%- for number, sc in successcriteria %} + - value: {{ number }} + label: "{{ number }}: {{ sc.name }}" +{%- endfor %} + - { + label: Severity, + name: severity, + type: select, + options: + { values: ["Unknown", "Low", "Medium", "High"] }, + required: false, + } + - { + label: Difficulty, + name: difficulty, + type: select, + options: { values: ["Unknown", "Low", "Medium", "High"] }, + required: false, + } + - { label: Sample Pages, name: sample, type: string, default: "all" } + - { + label: Screenshots, + name: screenshots, + type: object, + list: true, + required: false, + fields: + [ + { label: "Screenshot", name: "src", type: "image" }, + { label: "Alt Text", name: "alt", type: "string" }, + { label: "Caption", name: "caption", type: "text" }, + ], + } + - { + label: Body, + name: body, + type: rich-text, + default: "#### Problem\n\nDescribe the problem. Include code samples if necessary.\n\n#### Potential Solutions\n\nDescribe some potential solutions.\n\n#### Read more\n\nInclude some links to relevant examples and/or articles.", + } diff --git a/src/report/index.md b/src/report/index.md index b053a05..5eb9752 100644 --- a/src/report/index.md +++ b/src/report/index.md @@ -20,9 +20,9 @@ outOfScope: url: https://example.com/feed tools: - name: Mozilla Firefox - version: 123.0 + version: 123 - name: Google Chrome - version: 122.0 + version: 122 - name: Apple Safari version: 17.4 - name: Apple Safari (iOS) @@ -35,7 +35,13 @@ technologies: - JavaScript - WAI-ARIA - SVG - +supported: + - 1.1.1 +partiallySupported: + - 1.2.1 + - 1.2.3 +unsupported: + - 1.4.1 issuesUrl: https://gitlab.com/inclusive-design/idrc-wcag-reporter --- This website is partly accessible. Some severe issues were found and described in this report. diff --git a/src/scData.njk b/src/scData.njk new file mode 100644 index 0000000..51d9a70 --- /dev/null +++ b/src/scData.njk @@ -0,0 +1,13 @@ +--- +permalink: ../src/_data/scData.json +--- +{ + "successCriteria": [ +{%- for number, sc in successcriteria %} + { + "number": "{{ number }}", + "name": "{{ sc.name }}" + }{% if not loop.last %},{% endif %} +{%- endfor %} + ] +}