diff --git a/docs/md/a11y/a11y_conformance.md b/docs/md/a11y/a11y_conformance.md new file mode 100644 index 0000000000..603efb631e --- /dev/null +++ b/docs/md/a11y/a11y_conformance.md @@ -0,0 +1,258 @@ +# Janeway Accessibility Conformance + +Janeway is moving towards compliance with WCAG 2.2 AA. This process has started with the Front of House. Next will come the back office, and then the plugins. Version tested is given as the git commit reference on the master branch. + +## Results Key + +| Result | Markdown Symbol | +|---|---| +| Not applicable | :brown_square: `:brown_square:` | +| Partially supports | :orange_circle: `:orange_circle:` | +| Supports | :white_check_mark: `:white_check_mark:` | +| Does not support | :x: `:x:` | + +## Front of House - OLH Theme + +| Result | Success Criterion | Level | Conformance | Remarks | Audit | Version | +|---|---|---|---|---|---|---| +| | 1.1.1 Non-text Content | A | | | | | +| :brown_square: | 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not applicable | | [5085, January 2026](https://github.com/openlibhums/janeway/issues/5085) | f23d166d8 | +| :brown_square: | 1.2.2 Captions (Prerecorded) | A | Not applicable | | [5086, January 2026](https://github.com/openlibhums/janeway/issues/5086) | f23d166d8 | +| :brown_square: | 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not applicable | | [5087, January 2026](https://github.com/openlibhums/janeway/issues/5087) | f23d166d8 | +| :brown_square: | 1.2.4 Captions (Live) | AA | Not applicable | | [5088, January 2026](https://github.com/openlibhums/janeway/issues/5088) | f23d166d8 | +| :brown_square: | 1.2.5 Audio Description (Prerecorded) | AA | Not applicable | | [5089, January 2026](https://github.com/openlibhums/janeway/issues/5089) | f23d166d8 | +| | 1.3.1 Info and Relationships | A | | | | | +| :white_check_mark: | 1.3.2 Meaningful Sequence | A | Supports | | [5051,January 2026](https://github.com/openlibhums/janeway/issues/5051) | f23d166d8 | +| :orange_circle: | 1.3.3 Sensory Characteristics | A | Partially supports | toastr.js close buttons do not have text. | [5105, January 2026](https://github.com/openlibhums/janeway/issues/5105) | f23d166d8 | +| :orange_circle: | 1.3.4 Orientation | AA | Partially supports | Bugs on portrait/mobile, see audit. | [5108, March 2026](https://github.com/openlibhums/janeway/issues/5108) | f23d166d8 | +| | 1.3.5 Identify Input Purpose | AA | | | | | +| :white_check_mark: | 1.4.1 Use of Color | A | Supports | | [5114, March 2026](https://github.com/openlibhums/janeway/issues/5114) | f23d166d8 | +| | 1.4.10 Reflow | AA | | | | | +| | 1.4.11 Non-text Contrast | AA | | | | | +| :orange_circle: | 1.4.12 Text Spacing | AA | Partially supports | a few isolated bugs | [5120, January 2026](https://github.com/openlibhums/janeway/issues/5120) | f23d166d8 | +| | 1.4.13 Content on Hover or Focus | AA | | | | | +| :brown_square: | 1.4.2 Audio Control | A | Not applicable | | [5090, January 2026](https://github.com/openlibhums/janeway/issues/5090) | f23d166d8 | +| | 1.4.3 Contrast (Minimum) | AA | | | | | +| | 1.4.4 Resize Text | AA | | | | | +| :white_check_mark: | 1.4.5 Images of Text | AA | Supports | | [5099, January 2026](https://github.com/openlibhums/janeway/issues/5099) | f23d166d8 | +| | 2.1.1 Keyboard | A | | | | | +| | 2.1.2 No Keyboard Trap | A | | | | | +| :brown_square: | 2.1.4 Character Key Shortcuts | A | Not applicable | | [5091, January 2026](https://github.com/openlibhums/janeway/issues/5091) | f23d166d8 | +| :orange_circle: | 2.2.1 Timing Adjustable | A | Partially supports | Log-out message cannot be paused. | [5144, February 2026](https://github.com/openlibhums/janeway/issues/5144) | f23d166d8 | +| :brown_square: | 2.2.2 Pause, Stop, Hide | A | Not applicable | | [5145, January 2026](https://github.com/openlibhums/janeway/issues/5145) | f23d166d8 | +| :white_check_mark: | 2.3.1 Three Flashes or Below Threshold | A | Supports | | [5147, February 2026](https://github.com/openlibhums/janeway/issues/5147) | f23d166d8 | +| :white_check_mark: | 2.4.1 Bypass Blocks | A | Supports | | [5101, January 2026](https://github.com/openlibhums/janeway/issues/5101) | f23d166d8 | +| | 2.4.11 Focus Not Obscured (Minimum) | AA | | | | | +| :orange_circle: | 2.4.2 Page Titled | A | Partially supports | All have titles, but they are not fully descriptive. | [5146, February 2026](https://github.com/openlibhums/janeway/issues/5146) | f23d166d8 | +| | 2.4.3 Focus Order | A | | | | | +| | 2.4.4 Link Purpose (In Context) | A | | | | | +| :orange_circle: | 2.4.5 Multiple Ways | AA | Partially supports | | [5150, Feburary 2026](https://github.com/openlibhums/janeway/issues/5150) | f23d166d8 | +| | 2.4.6 Headings and Labels | AA | | | | | +| | 2.4.7 Focus Visible | AA | | | | | +| :white_check_mark: | 2.5.1 Pointer Gestures | A | Supports | | [5154, Feburary 2026](https://github.com/openlibhums/janeway/issues/5154) | f23d166d8 | +| :brown_square: | 2.5.2 Pointer Cancellation | A | Not applicable | | [5092, January 2026](https://github.com/openlibhums/janeway/issues/5092) | f23d166d8 | +| | 2.5.3 Label in Name | A | | | | | +| :brown_square: | 2.5.4 Motion Actuation | A | Not applicable | | [5093, January 2026](https://github.com/openlibhums/janeway/issues/5093) | f23d166d8 | +| :brown_square: | 2.5.7 Dragging Movements | AA | Not applicable | | [5094, January 2026](https://github.com/openlibhums/janeway/issues/5094) | f23d166d8 | +| | 2.5.8 Target Size (Minimum) | AA | | | | | +| :orange_circle: | 3.1.1 Language of Page | A | Partially supports | Single bug in article print page. | [5157, February 2026](https://github.com/openlibhums/janeway/issues/5157) | f23d166d8 | +| :white_check_mark: | 3.1.2 Language of Parts | AA | Supports | | [5158, February 2026](https://github.com/openlibhums/janeway/issues/5158) | f23d166d8 | +| | 3.2.1 On Focus | A | | | | | +| | 3.2.2 On Input | A | | | | | +| :orange_circle: | 3.2.3 Consistent Navigation | AA | Partially supports | Single urgent bugfix on mobile | [5161, February 2026](https://github.com/openlibhums/janeway/issues/5161) | f23d166d8 | +| | 3.2.4 Consistent Identification | AA | | | | | +| :white_check_mark: | 3.2.6 Consistent Help | A | Supports | | [5163, February 2026](https://github.com/openlibhums/janeway/issues/5163) | f23d166d8 | +| :white_check_mark: | 3.3.1 Error Identification | A | Supports | | [5164, March 2026](https://github.com/openlibhums/janeway/issues/5164) | f23d166d8 | +| | 3.3.2 Labels or Instructions | A | | | | | +| :white_check_mark: | 3.3.3 Error Suggestion | AA | Supports | | [5166, February 2026](https://github.com/openlibhums/janeway/issues/5166) | f23d166d8 | +| :brown_square: | 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Not applicable | | [5095, January 2026](https://github.com/openlibhums/janeway/issues/5095) | f23d166d8 | +| :brown_square: | 3.3.7 Redundant Entry | A | Not applicable | | [5096, January 2026](https://github.com/openlibhums/janeway/issues/5096) | f23d166d8 | +| :brown_square: | 3.3.8 Accessible Authentication (Minimum) | AA | Not applicable | | [5167, February 2026](https://github.com/openlibhums/janeway/issues/5167) | f23d166d8 | +| | 4.1.2 Name, Role, Value | A | | | | | +| :brown_square: | 4.1.3 Status Messages | AA | Not applicable | | [5097, January 2026](https://github.com/openlibhums/janeway/issues/5097) | f23d166d8 | + +## Front of House - Material Theme + +| Result | Success Criterion | Level | Conformance | Remarks | Audit | Version | +|---|---|---|---|---|---|---| +| | 1.1.1 Non-text Content | A | | | | | +| :brown_square: | 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not applicable | | [5085, January 2026](https://github.com/openlibhums/janeway/issues/5085) | f23d166d8 | +| :brown_square: | 1.2.2 Captions (Prerecorded) | A | Not applicable | | [5086, January 2026](https://github.com/openlibhums/janeway/issues/5086) | f23d166d8 | +| :brown_square: | 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not applicable | | [5087, January 2026](https://github.com/openlibhums/janeway/issues/5087) | f23d166d8 | +| :brown_square: | 1.2.4 Captions (Live) | AA | Not applicable | | [5088, January 2026](https://github.com/openlibhums/janeway/issues/5088) | f23d166d8 | +| :brown_square: | 1.2.5 Audio Description (Prerecorded) | AA | Not applicable | | [5089, January 2026](https://github.com/openlibhums/janeway/issues/5089) | f23d166d8 | +| | 1.3.1 Info and Relationships | A | | | | | +| :white_check_mark: | 1.3.2 Meaningful Sequence | A | Supports | | [5051, January 2026](https://github.com/openlibhums/janeway/issues/5051) | f23d166d8 | +| :white_check_mark: | 1.3.3 Sensory Characteristics | A | Supports | | [5105, January 2026](https://github.com/openlibhums/janeway/issues/5105) | f23d166d8 | +| :orange_circle: | 1.3.4 Orientation | AA | Partially supports | Not responsive on iOS Safari. Incompatible with wide header images. | [5108, March 2026](https://github.com/openlibhums/janeway/issues/5108) | f23d166d8 | +| | 1.3.5 Identify Input Purpose | AA | | | | | +| :white_check_mark: | 1.4.1 Use of Color | A | Supports | | [5114, March 2026](https://github.com/openlibhums/janeway/issues/5114) | f23d166d8 | +| | 1.4.10 Reflow | AA | | | | | +| | 1.4.11 Non-text Contrast | AA | | | | | +| :x: | 1.4.12 Text Spacing | AA | Does not support | Desktop navigation is unusable at increased spacing. | [5120, January 2026](https://github.com/openlibhums/janeway/issues/5120) | f23d166d8 | +| | 1.4.13 Content on Hover or Focus | AA | | | | | +| :brown_square: | 1.4.2 Audio Control | A | Not applicable | | [5090,January 2026](https://github.com/openlibhums/janeway/issues/5090) | f23d166d8 | +| | 1.4.3 Contrast (Minimum) | AA | | | | | +| | 1.4.4 Resize Text | AA | | | | | +| :white_check_mark: | 1.4.5 Images of Text | AA | Supports | | [5099, January 2026](https://github.com/openlibhums/janeway/issues/5099) | f23d166d8 | +| | 2.1.1 Keyboard | A | | | | | +| | 2.1.2 No Keyboard Trap | A | | | | | +| :brown_square: | 2.1.4 Character Key Shortcuts | A | Not applicable | | [5091, January 2026](https://github.com/openlibhums/janeway/issues/5091) | f23d166d8 | +| :orange_circle: | 2.2.1 Timing Adjustable | A | Partially supports | Carousel and log-out message cannot be paused. | [5144, February 2026](https://github.com/openlibhums/janeway/issues/5144) | f23d166d8 | +| :orange_circle: | 2.2.2 Pause, Stop, Hide | A | Partially supports | Carousel autoplays and cannot be paused. | [5145, January 2026](https://github.com/openlibhums/janeway/issues/5145) | f23d166d8 | +| :white_check_mark: | 2.3.1 Three Flashes or Below Threshold | A | Supports | | [5147, February 2026](https://github.com/openlibhums/janeway/issues/5147) | f23d166d8 | +| :white_check_mark: | 2.4.1 Bypass Blocks | A | Supports | | [5101, January 2026](https://github.com/openlibhums/janeway/issues/5101) | f23d166d8 | +| | 2.4.11 Focus Not Obscured (Minimum) | AA | | | | | +| :orange_circle: | 2.4.2 Page Titled | A | Partially supports | All have titles, but they are not fully descriptive. | [5146, February 2026](https://github.com/openlibhums/janeway/issues/5146) | f23d166d8 | +| | 2.4.3 Focus Order | A | | | | | +| | 2.4.4 Link Purpose (In Context) | A | | | | | +| :orange_circle: | 2.4.5 Multiple Ways | AA | Partially supports | | [5150, Feburary 2026](https://github.com/openlibhums/janeway/issues/5150) | f23d166d8 | +| | 2.4.6 Headings and Labels | AA | | | | | +| | 2.4.7 Focus Visible | AA | | | | | +| :white_check_mark: | 2.5.1 Pointer Gestures | A | Supports | | [5154, Feburary 2026](https://github.com/openlibhums/janeway/issues/5154) | f23d166d8 | +| :brown_square: | 2.5.2 Pointer Cancellation | A | Not applicable | | [5092, January 2026](https://github.com/openlibhums/janeway/issues/5092) | f23d166d8 | +| | 2.5.3 Label in Name | A | | | | | +| :brown_square: | 2.5.4 Motion Actuation | A | Not applicable | | [5093, January 2026](https://github.com/openlibhums/janeway/issues/5093) | f23d166d8 | +| :brown_square: | 2.5.7 Dragging Movements | AA | Not applicable | | [5094, January 2026](https://github.com/openlibhums/janeway/issues/5094) | f23d166d8 | +| | 2.5.8 Target Size (Minimum) | AA | | | | | +| :white_check_mark: | 3.1.1 Language of Page | A | Supports | | [5157, February 2026](https://github.com/openlibhums/janeway/issues/5157) | f23d166d8 | +| :white_check_mark: | 3.1.2 Language of Parts | AA | Supports | | [5158, February 2026](https://github.com/openlibhums/janeway/issues/5158) | f23d166d8 | +| | 3.2.1 On Focus | A | | | | | +| | 3.2.2 On Input | A | | | | | +| :white_check_mark: | 3.2.3 Consistent Navigation | AA | Supports | | [5161, February 2026](https://github.com/openlibhums/janeway/issues/5161) | f23d166d8 | +| | 3.2.4 Consistent Identification | AA | | | | | +| :white_check_mark: | 3.2.6 Consistent Help | A | Supports | | [5163, February 2026](https://github.com/openlibhums/janeway/issues/5163) | f23d166d8 | +| :white_check_mark: | 3.3.1 Error Identification | A | Supports | | [5164, March 2026](https://github.com/openlibhums/janeway/issues/5164) | f23d166d8 | +| | 3.3.2 Labels or Instructions | A | | | | | +| :white_check_mark: | 3.3.3 Error Suggestion | AA | Supports | | [5166, February 2026](https://github.com/openlibhums/janeway/issues/5166) | f23d166d8 | +| :brown_square: | 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Not applicable | | [5095, January 2026](https://github.com/openlibhums/janeway/issues/5095) | f23d166d8 | +| :brown_square: | 3.3.7 Redundant Entry | A | Not applicable | | [5096, January 2026](https://github.com/openlibhums/janeway/issues/5096) | f23d166d8 | +| :brown_square: | 3.3.8 Accessible Authentication (Minimum) | AA | Not applicable | | [5167, February 2026](https://github.com/openlibhums/janeway/issues/5167) | f23d166d8 | +| | 4.1.2 Name, Role, Value | A | | | | | +| :brown_square: | 4.1.3 Status Messages | AA | Not applicable | | [5097, January 2026](https://github.com/openlibhums/janeway/issues/5097) | f23d166d8 | + +## Front of House - Clean Theme + +| Result | Success Criterion | Level | Conformance | Remarks | Audit | Version | +|---|---|---|---|---|---|---| +| :orange_circle: | 1.1.1 Non-text Content | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :brown_square: | 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not applicable | | [5085, January 2026](https://github.com/openlibhums/janeway/issues/5085) | f23d166d8 | +| :brown_square: | 1.2.2 Captions (Prerecorded) | A | Not applicable | | [5086, January 2026](https://github.com/openlibhums/janeway/issues/5086) | f23d166d8 | +| :brown_square: | 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not applicable | | [5087, January 2026](https://github.com/openlibhums/janeway/issues/5087) | f23d166d8 | +| :brown_square: | 1.2.4 Captions (Live) | AA | Not applicable | | [5088, January 2026](https://github.com/openlibhums/janeway/issues/5088) | f23d166d8 | +| :brown_square: | 1.2.5 Audio Description (Prerecorded) | AA | Not applicable | | [5089, January 2026](https://github.com/openlibhums/janeway/issues/5089) | f23d166d8 | +| :orange_circle: | 1.3.1 Info and Relationships | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :white_check_mark: | 1.3.2 Meaningful Sequence | A | Supports | | [5051, January 2026](https://github.com/openlibhums/janeway/issues/5051) | f23d166d8 | +| :white_check_mark: | 1.3.3 Sensory Characteristics | A | Supports | | [5105, January 2026](https://github.com/openlibhums/janeway/issues/5105) | f23d166d8 | +| :orange_circle: | 1.3.4 Orientation | AA | Partially supports | Bug in (portrait) carousel for long titles. | [5108, March 2026](https://github.com/openlibhums/janeway/issues/5108) | f23d166d8 | +| :brown_square: | 1.3.5 Identify Input Purpose | AA | Not applicable | | June 2024 VPAT | f23d166d8 | +| :white_check_mark: | 1.4.1 Use of Color | A | Supports | | [5114, March 2026](https://github.com/openlibhums/janeway/issues/5114) | f23d166d8 | +| :white_check_mark: | 1.4.10 Reflow | AA | Supports | | June 2024 VPAT | f23d166d8 | +| :brown_square: | 1.4.11 Non-text Contrast | AA | Not applicable | Colour themes are defined by users. | June 2024 VPAT | f23d166d8 | +| :orange_circle: | 1.4.12 Text Spacing | AA | Partially supports | a few isolated bugs | [5120, January 2026](https://github.com/openlibhums/janeway/issues/5120) | f23d166d8 | +| :orange_circle: | 1.4.13 Content on Hover or Focus | AA | Partially supports | | June 2024 VPAT | f23d166d8 | +| :brown_square: | 1.4.2 Audio Control | A | Not applicable | | [5090, January 2026](https://github.com/openlibhums/janeway/issues/5090) | f23d166d8 | +| :brown_square: | 1.4.3 Contrast (Minimum) | AA | Not applicable | Colour themes are defined by users. | June 2024 VPAT | f23d166d8 | +| :orange_circle: | 1.4.4 Resize Text | AA | Partially supports | | June 2024 VPAT | f23d166d8 | +| :white_check_mark: | 1.4.5 Images of Text | AA | Supports | | [5099, January 2026](https://github.com/openlibhums/janeway/issues/5099) | f23d166d8 | +| :white_check_mark: | 2.1.1 Keyboard | A | Supports | | June 2024 VPAT | f23d166d8 | +| :orange_circle: | 2.1.2 No Keyboard Trap | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :brown_square: | 2.1.4 Character Key Shortcuts | A | Not applicable | | [5091, January 2026](https://github.com/openlibhums/janeway/issues/5091) | f23d166d8 | +| :white_check_mark: | 2.2.1 Timing Adjustable | A | Supports | | [5144,February 2026](https://github.com/openlibhums/janeway/issues/5144) | f23d166d8 | +| :white_check_mark: | 2.2.2 Pause, Stop, Hide | A | Supports | | [5145, January 2026](https://github.com/openlibhums/janeway/issues/5145) | f23d166d8 | +| :white_check_mark: | 2.3.1 Three Flashes or Below Threshold | A | Supports | | [5147, February 2026](https://github.com/openlibhums/janeway/issues/5147) | f23d166d8 | +| :white_check_mark: | 2.4.1 Bypass Blocks | A | Supports | | [5101, January 2026](https://github.com/openlibhums/janeway/issues/5101) | f23d166d8 | +| :white_check_mark: | 2.4.11 Focus Not Obscured (Minimum) | AA | Supports | | June 2024 VPAT | f23d166d8 | +| :orange_circle: | 2.4.2 Page Titled | A | Partially supports | All have titles, but they are not fully descriptive. | [5146, February 2026](https://github.com/openlibhums/janeway/issues/5146) | f23d166d8 | +| :orange_circle: | 2.4.3 Focus Order | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :orange_circle: | 2.4.4 Link Purpose (In Context) | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :orange_circle: | 2.4.5 Multiple Ways | AA | Partially supports | | [5150, Feburary 2026](https://github.com/openlibhums/janeway/issues/5150) | f23d166d8 | +| :orange_circle: | 2.4.6 Headings and Labels | AA | Partially supports | | June 2024 VPAT | f23d166d8 | +| :white_check_mark: | 2.4.7 Focus Visible | AA | Supports | | June 2024 VPAT | f23d166d8 | +| :white_check_mark: | 2.5.1 Pointer Gestures | A | Supports | | [5154, Feburary 2026](https://github.com/openlibhums/janeway/issues/5154) | f23d166d8 | +| :brown_square: | 2.5.2 Pointer Cancellation | A | Not applicable | | [5092, January 2026](https://github.com/openlibhums/janeway/issues/5092) | f23d166d8 | +| :white_check_mark: | 2.5.3 Label in Name | A | Supports | | June 2024 VPAT | f23d166d8 | +| :brown_square: | 2.5.4 Motion Actuation | A | Not applicable | | [5093, January 2026](https://github.com/openlibhums/janeway/issues/5093) | f23d166d8 | +| :brown_square: | 2.5.7 Dragging Movements | AA | Not applicable | | [5094, January 2026](https://github.com/openlibhums/janeway/issues/5094) | f23d166d8 | +| :orange_circle: | 2.5.8 Target Size (Minimum) | AA | Partially supports | | June 2024 VPAT | f23d166d8 | +| :orange_circle: | 3.1.1 Language of Page | A | Partially supports | Single bug in article print page. | [5157, February 2026](https://github.com/openlibhums/janeway/issues/5157) | f23d166d8 | +| :white_check_mark: | 3.1.2 Language of Parts | AA | Supports | | [5158, February 2026](https://github.com/openlibhums/janeway/issues/5158) | f23d166d8 | +| :orange_circle: | 3.2.1 On Focus | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :orange_circle: | 3.2.2 On Input | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :white_check_mark: | 3.2.3 Consistent Navigation | AA | Supports | | [5161, February 2026](https://github.com/openlibhums/janeway/issues/5161) | f23d166d8 | +| :white_check_mark: | 3.2.4 Consistent Identification | AA | Supports | | June 2024 VPAT | f23d166d8 | +| :white_check_mark: | 3.2.6 Consistent Help | A | Supports | | [5163, February 2026](https://github.com/openlibhums/janeway/issues/5163) | f23d166d8 | +| :white_check_mark: | 3.3.1 Error Identification | A | Supports | | [5164, March 2026](https://github.com/openlibhums/janeway/issues/5164) | f23d166d8 | +| :orange_circle: | 3.3.2 Labels or Instructions | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :white_check_mark: | 3.3.3 Error Suggestion | AA | Supports | | [5166, February 2026](https://github.com/openlibhums/janeway/issues/5166) | f23d166d8 | +| :brown_square: | 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Not applicable | | [5095, January 2026](https://github.com/openlibhums/janeway/issues/5095) | f23d166d8 | +| :brown_square: | 3.3.7 Redundant Entry | A | Not applicable | | [5096, January 2026](https://github.com/openlibhums/janeway/issues/5096) | f23d166d8 | +| :brown_square: | 3.3.8 Accessible Authentication (Minimum) | AA | Not applicable | | [5167, February 2026](https://github.com/openlibhums/janeway/issues/5167) | f23d166d8 | +| :orange_circle: | 4.1.2 Name, Role, Value | A | Partially supports | | June 2024 VPAT | f23d166d8 | +| :brown_square: | 4.1.3 Status Messages | AA | Not applicable | | [5097, January 2026](https://github.com/openlibhums/janeway/issues/5097) | f23d166d8 | + +## Front of House - Accessibility Mode + +Accessibility Mode is provided as an user-selectable alternative from all three themes. + +| Result | Success Criterion | Level | Conformance | Remarks | Audit | Version | +|---|---|---|---|---|---|---| +| | 1.1.1 Non-text Content | A | | | | | +| :brown_square: | 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not applicable | | [5085, January 2026](https://github.com/openlibhums/janeway/issues/5085) | f23d166d8 | +| :brown_square: | 1.2.2 Captions (Prerecorded) | A | Not applicable | | [5086, January 2026](https://github.com/openlibhums/janeway/issues/5086) | f23d166d8 | +| :brown_square: | 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not applicable | | [5087, January 2026](https://github.com/openlibhums/janeway/issues/5087) | f23d166d8 | +| :brown_square: | 1.2.4 Captions (Live) | AA | Not applicable | | [5088, January 2026](https://github.com/openlibhums/janeway/issues/5088) | f23d166d8 | +| :brown_square: | 1.2.5 Audio Description (Prerecorded) | AA | Not applicable | | [5089, January 2026](https://github.com/openlibhums/janeway/issues/5089) | f23d166d8 | +| | 1.3.1 Info and Relationships | A | | | | | +| :white_check_mark: | 1.3.2 Meaningful Sequence | A | Supports | | [5051, January 2026](https://github.com/openlibhums/janeway/issues/5051) | f23d166d8 | +| :white_check_mark: | 1.3.3 Sensory Characteristics | A | Supports | | [5105, January 2026](https://github.com/openlibhums/janeway/issues/5105) | f23d166d8 | +| | 1.3.4 Orientation | AA | | | | | +| | 1.3.5 Identify Input Purpose | AA | | | | | +| | 1.4.1 Use of Color | A | | | | | +| | 1.4.10 Reflow | AA | | | | | +| | 1.4.11 Non-text Contrast | AA | | | | | +| | 1.4.12 Text Spacing | AA | | | | | +| | 1.4.13 Content on Hover or Focus | AA | | | | | +| :brown_square: | 1.4.2 Audio Control | A | Not applicable | | [5090, January 2026](https://github.com/openlibhums/janeway/issues/5090) | f23d166d8 | +| | 1.4.3 Contrast (Minimum) | AA | | | | | +| | 1.4.4 Resize Text | AA | | | | | +| :white_check_mark: | 1.4.5 Images of Text | AA | Supports | | [5099, January 2026](https://github.com/openlibhums/janeway/issues/5099) | f23d166d8 | +| | 2.1.1 Keyboard | A | | | | | +| | 2.1.2 No Keyboard Trap | A | | | | | +| :brown_square: | 2.1.4 Character Key Shortcuts | A | Not applicable | | [5091, January 2026](https://github.com/openlibhums/janeway/issues/5091) | f23d166d8 | +| | 2.2.1 Timing Adjustable | A | | | | | +| | 2.2.2 Pause, Stop, Hide | A | | | | | +| :white_check_mark: | 2.3.1 Three Flashes or Below Threshold | A | Supports | | [5147, February 2026](https://github.com/openlibhums/janeway/issues/5147) | f23d166d8 | +| :white_check_mark: | 2.4.1 Bypass Blocks | A | Supports | | [5101, January 2026](https://github.com/openlibhums/janeway/issues/5101) | f23d166d8 | +| | 2.4.11 Focus Not Obscured (Minimum) | AA | | | | | +| | 2.4.2 Page Titled | A | | | | | +| | 2.4.3 Focus Order | A | | | | | +| | 2.4.4 Link Purpose (In Context) | A | | | | | +| :orange_circle: | 2.4.5 Multiple Ways | AA | Partially supports | | [5150, Feburary 2026](https://github.com/openlibhums/janeway/issues/5150) | f23d166d8 | +| | 2.4.6 Headings and Labels | AA | | | | | +| | 2.4.7 Focus Visible | AA | | | | | +| | 2.5.1 Pointer Gestures | A | | | | | +| :brown_square: | 2.5.2 Pointer Cancellation | A | Not applicable | | [5092, January 2026](https://github.com/openlibhums/janeway/issues/5092) | f23d166d8 | +| | 2.5.3 Label in Name | A | | | | | +| :brown_square: | 2.5.4 Motion Actuation | A | Not applicable | | [5093, January 2026](https://github.com/openlibhums/janeway/issues/5093) | f23d166d8 | +| :brown_square: | 2.5.7 Dragging Movements | AA | Not applicable | | [5094, January 2026](https://github.com/openlibhums/janeway/issues/5094) | f23d166d8 | +| | 2.5.8 Target Size (Minimum) | AA | | | | | +| | 3.1.1 Language of Page | A | | | | | +| | 3.1.2 Language of Parts | AA | | | | | +| | 3.2.1 On Focus | A | | | | | +| | 3.2.2 On Input | A | | | | | +| | 3.2.3 Consistent Navigation | AA | | | | | +| | 3.2.4 Consistent Identification | AA | | | | | +| :white_check_mark: | 3.2.6 Consistent Help | A | Supports | | [5163, February 2026](https://github.com/openlibhums/janeway/issues/5163) | f23d166d8 | +| | 3.3.1 Error Identification | A | | | | | +| | 3.3.2 Labels or Instructions | A | | | | | +| | 3.3.3 Error Suggestion | AA | | | | | +| :brown_square: | 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Not applicable | | [5095, January 2026](https://github.com/openlibhums/janeway/issues/5095) | f23d166d8 | +| :brown_square: | 3.3.7 Redundant Entry | A | Not applicable | | [5096, January 2026](https://github.com/openlibhums/janeway/issues/5096) | f23d166d8 | +| :brown_square: | 3.3.8 Accessible Authentication (Minimum) | AA | Not applicable | | [5167, February 2026](https://github.com/openlibhums/janeway/issues/5167) | f23d166d8 | +| | 4.1.2 Name, Role, Value | A | | | | | +| :brown_square: | 4.1.3 Status Messages | AA | Not applicable | | [5097, January 2026](https://github.com/openlibhums/janeway/issues/5097) | f23d166d8 | + +## Back office + +No data. Development focus will turn to back office accessibilty improvements after the front of house is addressed in version 1.9. diff --git a/docs/md/a11y/conformance_data.json b/docs/md/a11y/conformance_data.json new file mode 100644 index 0000000000..ecc9c3057e --- /dev/null +++ b/docs/md/a11y/conformance_data.json @@ -0,0 +1,397 @@ +{ + "metadata": { + "title": "Janeway Accessibility Conformance", + "description": "Janeway is moving towards compliance with WCAG 2.2 AA. This process has started with the Front of House. Next will come the back office, and then the plugins. Version tested is given as the git commit reference on the master branch." + }, + "criteria": { + "1.1.1": { + "criterion_name": "Non-text Content", + "level": "A" + }, + "1.2.1": { + "criterion_name": "Audio-only and Video-only (Prerecorded)", + "level": "A" + }, + "1.2.2": { + "criterion_name": "Captions (Prerecorded)", + "level": "A" + }, + "1.2.3": { + "criterion_name": "Audio Description or Media Alternative (Prerecorded)", + "level": "A" + }, + "1.2.4": { + "criterion_name": "Captions (Live)", + "level": "AA" + }, + "1.2.5": { + "criterion_name": "Audio Description (Prerecorded)", + "level": "AA" + }, + "1.3.1": { + "criterion_name": "Info and Relationships", + "level": "A" + }, + "1.3.2": { + "criterion_name": "Meaningful Sequence", + "level": "A" + }, + "1.3.3": { + "criterion_name": "Sensory Characteristics", + "level": "A" + }, + "1.3.4": { + "criterion_name": "Orientation", + "level": "AA" + }, + "1.3.5": { + "criterion_name": "Identify Input Purpose", + "level": "AA" + }, + "1.4.1": { + "criterion_name": "Use of Color", + "level": "A" + }, + "1.4.2": { + "criterion_name": "Audio Control", + "level": "A" + }, + "1.4.3": { + "criterion_name": "Contrast (Minimum)", + "level": "AA" + }, + "1.4.4": { + "criterion_name": "Resize Text", + "level": "AA" + }, + "1.4.5": { + "criterion_name": "Images of Text", + "level": "AA" + }, + "1.4.10": { + "criterion_name": "Reflow", + "level": "AA" + }, + "1.4.11": { + "criterion_name": "Non-text Contrast", + "level": "AA" + }, + "1.4.12": { + "criterion_name": "Text Spacing", + "level": "AA" + }, + "1.4.13": { + "criterion_name": "Content on Hover or Focus", + "level": "AA" + }, + "2.1.1": { + "criterion_name": "Keyboard", + "level": "A" + }, + "2.1.2": { + "criterion_name": "No Keyboard Trap", + "level": "A" + }, + "2.1.4": { + "criterion_name": "Character Key Shortcuts", + "level": "A" + }, + "2.2.1": { + "criterion_name": "Timing Adjustable", + "level": "A" + }, + "2.2.2": { + "criterion_name": "Pause, Stop, Hide", + "level": "A" + }, + "2.3.1": { + "criterion_name": "Three Flashes or Below Threshold", + "level": "A" + }, + "2.4.1": { + "criterion_name": "Bypass Blocks", + "level": "A" + }, + "2.4.2": { + "criterion_name": "Page Titled", + "level": "A" + }, + "2.4.3": { + "criterion_name": "Focus Order", + "level": "A" + }, + "2.4.4": { + "criterion_name": "Link Purpose (In Context)", + "level": "A" + }, + "2.4.5": { + "criterion_name": "Multiple Ways", + "level": "AA" + }, + "2.4.6": { + "criterion_name": "Headings and Labels", + "level": "AA" + }, + "2.4.7": { + "criterion_name": "Focus Visible", + "level": "AA" + }, + "2.4.11": { + "criterion_name": "Focus Not Obscured (Minimum)", + "level": "AA" + }, + "2.5.1": { + "criterion_name": "Pointer Gestures", + "level": "A" + }, + "2.5.2": { + "criterion_name": "Pointer Cancellation", + "level": "A" + }, + "2.5.3": { + "criterion_name": "Label in Name", + "level": "A" + }, + "2.5.4": { + "criterion_name": "Motion Actuation", + "level": "A" + }, + "2.5.7": { + "criterion_name": "Dragging Movements", + "level": "AA" + }, + "2.5.8": { + "criterion_name": "Target Size (Minimum)", + "level": "AA" + }, + "3.1.1": { + "criterion_name": "Language of Page", + "level": "A" + }, + "3.1.2": { + "criterion_name": "Language of Parts", + "level": "AA" + }, + "3.2.1": { + "criterion_name": "On Focus", + "level": "A" + }, + "3.2.2": { + "criterion_name": "On Input", + "level": "A" + }, + "3.2.3": { + "criterion_name": "Consistent Navigation", + "level": "AA" + }, + "3.2.4": { + "criterion_name": "Consistent Identification", + "level": "AA" + }, + "3.2.6": { + "criterion_name": "Consistent Help", + "level": "A" + }, + "3.3.1": { + "criterion_name": "Error Identification", + "level": "A" + }, + "3.3.2": { + "criterion_name": "Labels or Instructions", + "level": "A" + }, + "3.3.3": { + "criterion_name": "Error Suggestion", + "level": "AA" + }, + "3.3.4": { + "criterion_name": "Error Prevention (Legal, Financial, Data)", + "level": "AA" + }, + "3.3.7": { + "criterion_name": "Redundant Entry", + "level": "A" + }, + "3.3.8": { + "criterion_name": "Accessible Authentication (Minimum)", + "level": "AA" + }, + "4.1.2": { + "criterion_name": "Name, Role, Value", + "level": "A" + }, + "4.1.3": { + "criterion_name": "Status Messages", + "level": "AA" + } + }, + "area": { + "olh": { + "name": "Front of House - OLH Theme", + "audit_results": { + "1.2.1": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5085, January 2026](https://github.com/openlibhums/janeway/issues/5085)" }, + "1.2.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5086, January 2026](https://github.com/openlibhums/janeway/issues/5086)" }, + "1.2.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5087, January 2026](https://github.com/openlibhums/janeway/issues/5087)" }, + "1.2.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5088, January 2026](https://github.com/openlibhums/janeway/issues/5088)" }, + "1.2.5": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5089, January 2026](https://github.com/openlibhums/janeway/issues/5089)" }, + "1.3.2": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5051,January 2026](https://github.com/openlibhums/janeway/issues/5051)" }, + "1.3.3": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "toastr.js close buttons do not have text.", "audit": "[5105, January 2026](https://github.com/openlibhums/janeway/issues/5105)" }, + "1.3.4": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Bugs on portrait/mobile, see audit.", "audit": "[5108, March 2026](https://github.com/openlibhums/janeway/issues/5108)" }, + "1.4.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5114, March 2026](https://github.com/openlibhums/janeway/issues/5114)" }, + "1.4.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5090, January 2026](https://github.com/openlibhums/janeway/issues/5090)" }, + "1.4.5": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5099, January 2026](https://github.com/openlibhums/janeway/issues/5099)" }, + "1.4.12": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "a few isolated bugs", "audit": "[5120, January 2026](https://github.com/openlibhums/janeway/issues/5120)" }, + "2.1.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5091, January 2026](https://github.com/openlibhums/janeway/issues/5091)" }, + "2.2.1": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Log-out message cannot be paused.", "audit": "[5144, February 2026](https://github.com/openlibhums/janeway/issues/5144)" }, + "2.2.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5145, January 2026](https://github.com/openlibhums/janeway/issues/5145)" }, + "2.3.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5147, February 2026](https://github.com/openlibhums/janeway/issues/5147)" }, + "2.4.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5101, January 2026](https://github.com/openlibhums/janeway/issues/5101)" }, + "2.4.2": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "All have titles, but they are not fully descriptive.", "audit": "[5146, February 2026](https://github.com/openlibhums/janeway/issues/5146)" }, + "2.4.5": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "[5150, Feburary 2026](https://github.com/openlibhums/janeway/issues/5150)" }, + "2.5.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5154, Feburary 2026](https://github.com/openlibhums/janeway/issues/5154)" }, + "2.5.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5092, January 2026](https://github.com/openlibhums/janeway/issues/5092)" }, + "2.5.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5093, January 2026](https://github.com/openlibhums/janeway/issues/5093)" }, + "2.5.7": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5094, January 2026](https://github.com/openlibhums/janeway/issues/5094)" }, + "3.1.1": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Single bug in article print page.", "audit": "[5157, February 2026](https://github.com/openlibhums/janeway/issues/5157)" }, + "3.1.2": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5158, February 2026](https://github.com/openlibhums/janeway/issues/5158)" }, + "3.2.3": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Single urgent bugfix on mobile", "audit": "[5161, February 2026](https://github.com/openlibhums/janeway/issues/5161)"}, + "3.2.6": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5163, February 2026](https://github.com/openlibhums/janeway/issues/5163)" }, + "3.3.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5164, March 2026](https://github.com/openlibhums/janeway/issues/5164)" }, + "3.3.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5166, February 2026](https://github.com/openlibhums/janeway/issues/5166)" }, + "3.3.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5095, January 2026](https://github.com/openlibhums/janeway/issues/5095)" }, + "3.3.7": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5096, January 2026](https://github.com/openlibhums/janeway/issues/5096)" }, + "3.3.8": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5167, February 2026](https://github.com/openlibhums/janeway/issues/5167)" }, + "4.1.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5097, January 2026](https://github.com/openlibhums/janeway/issues/5097)" } + } + }, + "material": { + "name": "Front of House - Material Theme", + "audit_results": { + "1.2.1": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5085, January 2026](https://github.com/openlibhums/janeway/issues/5085)" }, + "1.2.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5086, January 2026](https://github.com/openlibhums/janeway/issues/5086)" }, + "1.2.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5087, January 2026](https://github.com/openlibhums/janeway/issues/5087)" }, + "1.2.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5088, January 2026](https://github.com/openlibhums/janeway/issues/5088)" }, + "1.2.5": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5089, January 2026](https://github.com/openlibhums/janeway/issues/5089)" }, + "1.3.2": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5051, January 2026](https://github.com/openlibhums/janeway/issues/5051)" }, + "1.3.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5105, January 2026](https://github.com/openlibhums/janeway/issues/5105)" }, + "1.3.4": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Not responsive on iOS Safari. Incompatible with wide header images.", "audit": "[5108, March 2026](https://github.com/openlibhums/janeway/issues/5108)" }, + "1.4.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5114, March 2026](https://github.com/openlibhums/janeway/issues/5114)" }, + "1.4.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5090,January 2026](https://github.com/openlibhums/janeway/issues/5090)" }, + "1.4.5": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5099, January 2026](https://github.com/openlibhums/janeway/issues/5099)" }, + "1.4.12": { "commit": "f23d166d8", "conformance": "Does not support", "remarks": "Desktop navigation is unusable at increased spacing.", "audit": "[5120, January 2026](https://github.com/openlibhums/janeway/issues/5120)" }, + "2.2.1": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Carousel and log-out message cannot be paused.", "audit": "[5144, February 2026](https://github.com/openlibhums/janeway/issues/5144)" }, + "2.2.2": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Carousel autoplays and cannot be paused.", "audit": "[5145, January 2026](https://github.com/openlibhums/janeway/issues/5145)" }, + "2.1.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5091, January 2026](https://github.com/openlibhums/janeway/issues/5091)" }, + "2.3.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5147, February 2026](https://github.com/openlibhums/janeway/issues/5147)" }, + "2.4.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5101, January 2026](https://github.com/openlibhums/janeway/issues/5101)" }, + "2.4.2": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "All have titles, but they are not fully descriptive.", "audit": "[5146, February 2026](https://github.com/openlibhums/janeway/issues/5146)" }, + "2.4.5": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "[5150, Feburary 2026](https://github.com/openlibhums/janeway/issues/5150)" }, + "2.5.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5154, Feburary 2026](https://github.com/openlibhums/janeway/issues/5154)" }, + "2.5.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5092, January 2026](https://github.com/openlibhums/janeway/issues/5092)" }, + "2.5.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5093, January 2026](https://github.com/openlibhums/janeway/issues/5093)" }, + "2.5.7": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5094, January 2026](https://github.com/openlibhums/janeway/issues/5094)" }, + "3.1.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5157, February 2026](https://github.com/openlibhums/janeway/issues/5157)" }, + "3.1.2": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5158, February 2026](https://github.com/openlibhums/janeway/issues/5158)" }, + "3.2.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5161, February 2026](https://github.com/openlibhums/janeway/issues/5161)"}, + "3.2.6": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5163, February 2026](https://github.com/openlibhums/janeway/issues/5163)" }, + "3.3.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5164, March 2026](https://github.com/openlibhums/janeway/issues/5164)" }, + "3.3.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5166, February 2026](https://github.com/openlibhums/janeway/issues/5166)" }, + "3.3.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5095, January 2026](https://github.com/openlibhums/janeway/issues/5095)" }, + "3.3.7": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5096, January 2026](https://github.com/openlibhums/janeway/issues/5096)" }, + "3.3.8": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5167, February 2026](https://github.com/openlibhums/janeway/issues/5167)" }, + "4.1.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5097, January 2026](https://github.com/openlibhums/janeway/issues/5097)" } + } + }, + "clean": { + "name": "Front of House - Clean Theme", + "audit_results": { + "1.1.1": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "1.2.1": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5085, January 2026](https://github.com/openlibhums/janeway/issues/5085)" }, + "1.2.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5086, January 2026](https://github.com/openlibhums/janeway/issues/5086)" }, + "1.2.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5087, January 2026](https://github.com/openlibhums/janeway/issues/5087)" }, + "1.2.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5088, January 2026](https://github.com/openlibhums/janeway/issues/5088)" }, + "1.2.5": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5089, January 2026](https://github.com/openlibhums/janeway/issues/5089)" }, + "1.3.1": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "1.3.2": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5051, January 2026](https://github.com/openlibhums/janeway/issues/5051)" }, + "1.3.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5105, January 2026](https://github.com/openlibhums/janeway/issues/5105)" }, + "1.3.4": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Bug in (portrait) carousel for long titles.", "audit": "[5108, March 2026](https://github.com/openlibhums/janeway/issues/5108)" }, + "1.3.5": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "June 2024 VPAT" }, + "1.4.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5114, March 2026](https://github.com/openlibhums/janeway/issues/5114)" }, + "1.4.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5090, January 2026](https://github.com/openlibhums/janeway/issues/5090)" }, + "1.4.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": "Colour themes are defined by users.", "audit": "June 2024 VPAT" }, + "1.4.4": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "1.4.5": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5099, January 2026](https://github.com/openlibhums/janeway/issues/5099)" }, + "1.4.10": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "June 2024 VPAT" }, + "1.4.11": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": "Colour themes are defined by users.", "audit": "June 2024 VPAT" }, + "1.4.12": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "a few isolated bugs", "audit": "[5120, January 2026](https://github.com/openlibhums/janeway/issues/5120)" }, + "1.4.13": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.1.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.1.2": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.1.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5091, January 2026](https://github.com/openlibhums/janeway/issues/5091)" }, + "2.2.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5144,February 2026](https://github.com/openlibhums/janeway/issues/5144)" }, + "2.2.2": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5145, January 2026](https://github.com/openlibhums/janeway/issues/5145)" }, + "2.3.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5147, February 2026](https://github.com/openlibhums/janeway/issues/5147)" }, + "2.4.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5101, January 2026](https://github.com/openlibhums/janeway/issues/5101)" }, + "2.4.2": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "All have titles, but they are not fully descriptive.", "audit": "[5146, February 2026](https://github.com/openlibhums/janeway/issues/5146)" }, + "2.4.3": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.4.4": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.4.5": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "[5150, Feburary 2026](https://github.com/openlibhums/janeway/issues/5150)" }, + "2.4.6": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.4.7": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.4.11": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.5.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5154, Feburary 2026](https://github.com/openlibhums/janeway/issues/5154)" }, + "2.5.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5092, January 2026](https://github.com/openlibhums/janeway/issues/5092)" }, + "2.5.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "June 2024 VPAT" }, + "2.5.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5093, January 2026](https://github.com/openlibhums/janeway/issues/5093)" }, + "2.5.7": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5094, January 2026](https://github.com/openlibhums/janeway/issues/5094)" }, + "2.5.8": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "3.1.1": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": "Single bug in article print page.", "audit": "[5157, February 2026](https://github.com/openlibhums/janeway/issues/5157)" }, + "3.1.2": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5158, February 2026](https://github.com/openlibhums/janeway/issues/5158)" }, + "3.2.1": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "3.2.2": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "3.2.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5161, February 2026](https://github.com/openlibhums/janeway/issues/5161)"}, + "3.2.4": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "June 2024 VPAT" }, + "3.2.6": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5163, February 2026](https://github.com/openlibhums/janeway/issues/5163)" }, + "3.3.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5164, March 2026](https://github.com/openlibhums/janeway/issues/5164)" }, + "3.3.2": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "3.3.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5166, February 2026](https://github.com/openlibhums/janeway/issues/5166)" }, + "3.3.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5095, January 2026](https://github.com/openlibhums/janeway/issues/5095)" }, + "3.3.7": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5096, January 2026](https://github.com/openlibhums/janeway/issues/5096)" }, + "3.3.8": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5167, February 2026](https://github.com/openlibhums/janeway/issues/5167)" }, + "4.1.2": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "June 2024 VPAT" }, + "4.1.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5097, January 2026](https://github.com/openlibhums/janeway/issues/5097)" } + } + }, + "accessibility_mode": { + "name": "Front of House - Accessibility Mode", + "notes": ["Accessibility Mode is provided as an user-selectable alternative from all three themes."], + "audit_results": { + "1.2.1": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5085, January 2026](https://github.com/openlibhums/janeway/issues/5085)" }, + "1.2.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5086, January 2026](https://github.com/openlibhums/janeway/issues/5086)" }, + "1.2.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5087, January 2026](https://github.com/openlibhums/janeway/issues/5087)" }, + "1.2.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5088, January 2026](https://github.com/openlibhums/janeway/issues/5088)" }, + "1.2.5": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5089, January 2026](https://github.com/openlibhums/janeway/issues/5089)" }, + "1.3.2": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5051, January 2026](https://github.com/openlibhums/janeway/issues/5051)" }, + "1.3.3": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5105, January 2026](https://github.com/openlibhums/janeway/issues/5105)" }, + "1.4.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5090, January 2026](https://github.com/openlibhums/janeway/issues/5090)" }, + "1.4.5": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5099, January 2026](https://github.com/openlibhums/janeway/issues/5099)" }, + "2.1.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5091, January 2026](https://github.com/openlibhums/janeway/issues/5091)" }, + "2.3.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5147, February 2026](https://github.com/openlibhums/janeway/issues/5147)" }, + "2.4.1": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5101, January 2026](https://github.com/openlibhums/janeway/issues/5101)" }, + "2.4.5": { "commit": "f23d166d8", "conformance": "Partially supports", "remarks": null, "audit": "[5150, Feburary 2026](https://github.com/openlibhums/janeway/issues/5150)" }, + "2.5.2": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5092, January 2026](https://github.com/openlibhums/janeway/issues/5092)" }, + "2.5.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5093, January 2026](https://github.com/openlibhums/janeway/issues/5093)" }, + "2.5.7": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5094, January 2026](https://github.com/openlibhums/janeway/issues/5094)" }, + "3.2.6": { "commit": "f23d166d8", "conformance": "Supports", "remarks": null, "audit": "[5163, February 2026](https://github.com/openlibhums/janeway/issues/5163)" }, + "3.3.4": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5095, January 2026](https://github.com/openlibhums/janeway/issues/5095)" }, + "3.3.7": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5096, January 2026](https://github.com/openlibhums/janeway/issues/5096)" }, + "3.3.8": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5167, February 2026](https://github.com/openlibhums/janeway/issues/5167)" }, + "4.1.3": { "commit": "f23d166d8", "conformance": "Not applicable", "remarks": null, "audit": "[5097, January 2026](https://github.com/openlibhums/janeway/issues/5097)" } + } + }, + "back_office": { + "name": "Back office", + "notes": ["No data. Development focus will turn to back office accessibilty improvements after the front of house is addressed in version 1.9."] + } + } +} \ No newline at end of file diff --git a/src/utils/management/commands/update_a11y_conformance.py b/src/utils/management/commands/update_a11y_conformance.py new file mode 100644 index 0000000000..777ef1c963 --- /dev/null +++ b/src/utils/management/commands/update_a11y_conformance.py @@ -0,0 +1,214 @@ +import json +import os + +from django.core.management.base import BaseCommand +from django.conf import settings + + +class Command(BaseCommand): + """Updates Accessibility Conformance markdown from JSON.""" + + help = "This will overwrite the conformance markdown file." + + # Conformance symbol mapping + conformance_symbol_map = { + "Not applicable": ":brown_square:", + "Partially supports": ":orange_circle:", + "Supports": ":white_check_mark:", + "Does not support": ":x:", + } + + def add_arguments(self, parser): + """Adds arguments to Django's management command-line parser. + + :param parser: the parser to which the required arguments will be added + :return: None + """ + default_json = os.path.join( + settings.BASE_DIR, + "..", + "docs", + "md", + "a11y", + "conformance_data.json", + ) + default_output = os.path.join( + settings.BASE_DIR, + "..", + "docs", + "md", + "a11y", + "a11y_conformance.md", + ) + parser.add_argument( + "path_to_json", + nargs="?", + type=str, + default=None, + help="Path to the JSON data file (optional; uses default if omitted)", + ) + parser.add_argument( + "path_to_output", + nargs="?", + type=str, + default=None, + help="Path to the output markdown file (optional; uses default if omitted)", + ) + parser.add_argument( + "--json-file", + type=str, + default=default_json, + help="Path to the JSON data file (overridden by path_to_json if given)", + ) + parser.add_argument( + "--output", + type=str, + default=default_output, + help="Path to the output markdown file (overridden by path_to_output if given)", + ) + + def format_table_cell(self, value): + """Format a table cell value, handling None and empty strings.""" + if value is None: + return "" + return str(value) + + def output_table_row(self, row_data): + """Output a markdown table row.""" + return ( + f"| {row_data['result']:<20} | {row_data['criterion_text']:<60} | {row_data['level']:<5} | " + f"{row_data['conformance']:<18} | {row_data['remarks']:<7} | {row_data['audit']:<20} | {row_data['version']:<10} |" + ) + + def generate_table_row(self, criterion_id, area_criterion_data): + """Generate a markdown table row for a criterion. + + Args: + criterion_id: The criterion ID (e.g., "1.1.1") + area_criterion_data: The criterion data from the area (contains conformance, remarks, audit) + """ + # Look up the full criterion info from the top-level criteria + criterion_info = self.data["criteria"].get(criterion_id, {}) + criterion_name = criterion_info.get("criterion_name", "") + level = criterion_info.get("level", "") + + conformance = area_criterion_data.get("conformance") + conformance_symbol = "" + if conformance and conformance in self.conformance_symbol_map: + conformance_symbol = self.conformance_symbol_map[conformance] + + row_data = { + "result": self.format_table_cell(conformance_symbol), + "criterion_text": f"{criterion_id} {criterion_name}", + "level": self.format_table_cell(level), + "conformance": self.format_table_cell(conformance), + "remarks": self.format_table_cell(area_criterion_data.get("remarks")), + "audit": self.format_table_cell(area_criterion_data.get("audit")), + "version": self.format_table_cell(area_criterion_data.get("commit")), + } + return self.output_table_row(row_data) + + def generate_area_table(self, area_data): + """Generate a markdown table for an area.""" + + # Column headings + headings = { + "result": "Result", + "criterion_text": "Success Criterion", + "level": "Level", + "conformance": "Conformance", + "remarks": "Remarks", + "audit": "Audit", + "version": "Version", + } + lines = [self.output_table_row(headings)] + lines.append("|---" * len(headings) + "|") + + audit_results = area_data.get("audit_results", {}) + + # Iterate over all criteria from the top-level criteria object + # Sort by criterion ID to ensure consistent ordering + for criterion_id in sorted(self.data["criteria"].keys()): + # Get area-specific data for this criterion, or use empty dict if not present + result_data = audit_results.get(criterion_id, {}) + lines.append(self.generate_table_row(criterion_id, result_data)) + + return "\n".join(lines) + + def handle(self, *args, **options): + """Generates conformance markdown from JSON data file. + + :param args: None + :param options: Command options + :return: None + """ + json_file = options.get("path_to_json") or options.get("json_file") + output_file = options.get("path_to_output") or options.get("output") + + # Resolve and normalize paths + json_file = os.path.normpath(os.path.abspath(json_file)) + output_file = os.path.normpath(os.path.abspath(output_file)) + + # Load JSON data + try: + with open(json_file, "r", encoding="utf-8") as f: + self.data = json.load(f) + except FileNotFoundError: + self.stdout.write(self.style.ERROR(f"JSON file not found: {json_file}")) + return + except json.JSONDecodeError as e: + self.stdout.write(self.style.ERROR(f"Invalid JSON file: {e}")) + return + + # Generate markdown + lines = [] + + # Title + lines.append(f"# {self.data['metadata']['title']}") + lines.append("") + lines.append(self.data["metadata"]["description"]) + lines.append("") + + # Results Key + lines.append("## Results Key") + lines.append("") + lines.append("| Result | Markdown Symbol |") + lines.append("|---|---|") + for result, symbol in self.conformance_symbol_map.items(): + lines.append(f"| {result} | {symbol} `{symbol}` |") + lines.append("") + + # Generate tables for each area + for area_key in self.data["area"]: + if area_key in self.data["area"]: + area_data = self.data["area"][area_key] + area_name = area_data["name"] + lines.append(f"## {area_name}") + lines.append("") + # Handle notes if they exist + notes = area_data.get("notes", []) + if notes: + for note in notes: + lines.append(note) + lines.append("") + # Generate table if results exist + if "audit_results" in area_data: + lines.append(self.generate_area_table(area_data)) + lines.append("") + + # Write output + try: + output_dir = os.path.dirname(output_file) + if output_dir and not os.path.exists(output_dir): + os.makedirs(output_dir) + + with open(output_file, "w", encoding="utf-8") as f: + f.write("\n".join(lines)) + + self.stdout.write( + self.style.SUCCESS( + f"Successfully generated VPAT markdown: {output_file}" + ) + ) + except Exception as e: + self.stdout.write(self.style.ERROR(f"Error writing output file: {e}"))