From d50bc1fd30a5af81bf3bb2a161f601edb7548a50 Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Tue, 15 Jul 2025 13:54:02 +0100 Subject: [PATCH 1/9] Accessibility statement first draft --- _toc.yml | 1 + cfrr_program_details/accessibility.ipynb | 86 ++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 cfrr_program_details/accessibility.ipynb diff --git a/_toc.yml b/_toc.yml index abd95f3e..988ff44e 100644 --- a/_toc.yml +++ b/_toc.yml @@ -348,3 +348,4 @@ parts: chapters: - file: cfrr_program_details/code_of_conduct - file: cfrr_program_details/code_of_conduct_violations + - file: cfrr_program_details/accessibility diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb new file mode 100644 index 00000000..1eca9fd6 --- /dev/null +++ b/cfrr_program_details/accessibility.ipynb @@ -0,0 +1,86 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dc9784f2-22a4-4e37-a5de-af1b60bc5961", + "metadata": {}, + "source": [ + "# Accessibility Statement for CfRR Courses\n", + "\n", + "At **Coding for Reproducible Research (CfRR)**, we are committed to ensuring digital accessibility for all users, regardless of ability or technology. We are actively working to improve the accessibility and usability of our website and strive to make our content inclusive for the widest possible audience.\n", + "\n", + "## Measures to Support Accessibility\n", + "\n", + "We aim to:\n", + "\n", + "- Follow the [Web Content Accessibility Guidelines (WCAG) 2.2 AA](https://www.w3.org/WAI/standards-guidelines/wcag/) standards.\n", + "- Use clear and simple language where possible.\n", + "- Provide structured content using headings and lists.\n", + "- Offer alternative text for images and visual elements.\n", + "- Ensure sufficient color contrast for text and backgrounds.\n", + "- Make our website navigable by keyboard and accessible to screen readers.\n", + "\n", + "## How Accessible is this Website?\n", + "\n", + "We know that some parts of this website may not be fully accessible, for example:\n", + "\n", + "- Some older documents and embedded materials may not be fully compatible with assistive technologies.\n", + "- Some visualisations and interactive elements may not have complete keyboard or screen reader support.\n", + "- Downloadable files may not always be in accessible formats.\n", + "\n", + "We are working to address these issues and welcome feedback from users to help us prioritize improvements.\n", + "\n", + "## Reporting Accessibility Problems\n", + "\n", + "If you find any problems not listed on this page or think we’re not meeting accessibility requirements, please contact us:\n", + "\n", + "- **Email:** codingforreproducibleresearch@exeter.ac.uk\n", + "- **Feedback Form:** https://coding-for-reproducible-research.github.io/CfRR_Courses/contributing/suggestions_form.html\n", + "\n", + "## Preparation of this Accessibility Statement\n", + "\n", + "This statement was prepared on [15th July 2025]. It was last reviewed on [15th July 2025]. \n", + "This website is regularly tested for accessibility issues, and we aim to update this statement and our site as we improve.\n", + "\n", + "```{important}\n", + "Known Accessibility Issues: Interactive Quizzes (JupyterQuiz)\n", + "\n", + "The interactive quiz elements on this website use the third-party [JupyterQuiz](https://github.com/jmshea/jupyterquiz) package. At present, these quizzes do not fully meet [WCAG 2.2](https://www.w3.org/WAI/standards-guidelines/wcag/) accessibility standards, particularly for users of screen readers and keyboard-only navigation.\n", + "\n", + "We are aware of this limitation and are actively supporting efforts to address these accessibility barriers in the upstream JupyterQuiz project. You can track the progress of this work [in this GitHub issue](https://github.com/jmshea/jupyterquiz/issues/31). While resolving these issues upstream may take longer, it is a more permanent solution that will benefit all users of JupyterQuiz, not just visitors to our site.\n", + "\n", + "We appreciate your patience and understanding as we work towards a fully accessible learning experience for everyone.\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03af971c-5c99-4620-a3c2-d632f8c9190a", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 95e1a2f909eea70b4ddd9f5021e65b41bf95e369 Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Tue, 29 Jul 2025 15:04:14 +0100 Subject: [PATCH 2/9] Update known issues --- cfrr_program_details/accessibility.ipynb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb index 1eca9fd6..a3952b52 100644 --- a/cfrr_program_details/accessibility.ipynb +++ b/cfrr_program_details/accessibility.ipynb @@ -43,13 +43,10 @@ "This website is regularly tested for accessibility issues, and we aim to update this statement and our site as we improve.\n", "\n", "```{important}\n", - "Known Accessibility Issues: Interactive Quizzes (JupyterQuiz)\n", + "Known Accessibility Issues\n", "\n", - "The interactive quiz elements on this website use the third-party [JupyterQuiz](https://github.com/jmshea/jupyterquiz) package. At present, these quizzes do not fully meet [WCAG 2.2](https://www.w3.org/WAI/standards-guidelines/wcag/) accessibility standards, particularly for users of screen readers and keyboard-only navigation.\n", + "There are currently no known accessibility issues on the website. If you experience any difficulties accessing content or using this site, please contact us so we can investigate and address the issue promptly. \n", "\n", - "We are aware of this limitation and are actively supporting efforts to address these accessibility barriers in the upstream JupyterQuiz project. You can track the progress of this work [in this GitHub issue](https://github.com/jmshea/jupyterquiz/issues/31). While resolving these issues upstream may take longer, it is a more permanent solution that will benefit all users of JupyterQuiz, not just visitors to our site.\n", - "\n", - "We appreciate your patience and understanding as we work towards a fully accessible learning experience for everyone.\n", "```\n" ] }, @@ -78,7 +75,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3.9.19" } }, "nbformat": 4, From 9a8b48ab8426d3a172e5501d798ea8ae877ef1dd Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Wed, 30 Jul 2025 20:40:14 +0100 Subject: [PATCH 3/9] Add known issues --- cfrr_program_details/accessibility.ipynb | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb index a3952b52..9743bc0b 100644 --- a/cfrr_program_details/accessibility.ipynb +++ b/cfrr_program_details/accessibility.ipynb @@ -43,9 +43,23 @@ "This website is regularly tested for accessibility issues, and we aim to update this statement and our site as we improve.\n", "\n", "```{important}\n", - "Known Accessibility Issues\n", + "## Known Accessibility Issues\n", "\n", - "There are currently no known accessibility issues on the website. If you experience any difficulties accessing content or using this site, please contact us so we can investigate and address the issue promptly. \n", + "### 1. Tables Generated from R\n", + "\n", + "Some tables created within our R-based teaching materials use multiple header rows or columns but do not include `headers` attributes in `` elements. This affects screen reader usability, particularly for complex tables. These are autogenerated from R output and are presented as-is to reflect authentic results and maintain consistency with the source language’s conventions.\n", + "\n", + "- Example page: [`data_types.html`](../individual_modules/introduction_to_r/data_types.html)\n", + "\n", + "We believe altering these outputs post-generation would compromise the educational integrity of the material, and have decided to leave them as they are originally. \n", + "\n", + "### 2. Teal-Coloured Julia Warning Text\n", + "\n", + "Some warning messages from the Julia programming language are displayed using a teal color that does not meet minimum contrast standards (WCAG 2.2 requires 4.5:1 for normal text). These warnings are auto-generated outputs when making use of `@code_warntype`.\n", + "\n", + "- Example page: [`performant_code.html`](../introduction_to_julia/performant_code.html)\n", + "\n", + "We have left these warnings in their original form to preserve the realism of the programming environment. \n", "\n", "```\n" ] From 066ffef9c2d3e5344a95a32fcdc02772f7ea0361 Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Wed, 30 Jul 2025 21:05:47 +0100 Subject: [PATCH 4/9] Add known issue for scope attribute --- cfrr_program_details/accessibility.ipynb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb index 9743bc0b..27941857 100644 --- a/cfrr_program_details/accessibility.ipynb +++ b/cfrr_program_details/accessibility.ipynb @@ -61,6 +61,16 @@ "\n", "We have left these warnings in their original form to preserve the realism of the programming environment. \n", "\n", + "### 3. Missing `scope` Attribute on `` Elements\n", + "\n", + "Certain tables generated from statistical model outputs in R use `` elements without including a `scope` attribute to indicate whether the header applies to a row or a column. This can impair the ability of screen readers to correctly associate headers with corresponding data cells, especially in summary or regression tables.\n", + "\n", + "- Affected pages:\n", + " - [`logistic_regression.html`](../regression_analysis_with_R/logistic_regression.html)\n", + " - [`regression_analysis_with_r_extras.html`](../regression_analysis_with_R/regression_analysis_with_r_extras.html)\n", + "\n", + "These outputs reflect the default rendering of R model summaries and have been retained to accurately represent R’s output format.\n", + "\n", "```\n" ] }, From 4ceda6b81a5ef361d846eefbf05e58254de01d37 Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Wed, 30 Jul 2025 21:07:55 +0100 Subject: [PATCH 5/9] Update justification --- cfrr_program_details/accessibility.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb index 27941857..bd482b88 100644 --- a/cfrr_program_details/accessibility.ipynb +++ b/cfrr_program_details/accessibility.ipynb @@ -69,7 +69,7 @@ " - [`logistic_regression.html`](../regression_analysis_with_R/logistic_regression.html)\n", " - [`regression_analysis_with_r_extras.html`](../regression_analysis_with_R/regression_analysis_with_r_extras.html)\n", "\n", - "These outputs reflect the default rendering of R model summaries and have been retained to accurately represent R’s output format.\n", + "These outputs reflect the default rendering of R model summaries and have been retained to represent R’s output format accurately, and have so been left within the website for authenticity. \n", "\n", "```\n" ] From a40901e9cdf5bcf48f7f53c2a5b6adc5442a8204 Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Thu, 31 Jul 2025 11:16:34 +0100 Subject: [PATCH 6/9] Remove affected pages --- cfrr_program_details/accessibility.ipynb | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb index bd482b88..f63151c1 100644 --- a/cfrr_program_details/accessibility.ipynb +++ b/cfrr_program_details/accessibility.ipynb @@ -47,30 +47,19 @@ "\n", "### 1. Tables Generated from R\n", "\n", - "Some tables created within our R-based teaching materials use multiple header rows or columns but do not include `headers` attributes in `` elements. This affects screen reader usability, particularly for complex tables. These are autogenerated from R output and are presented as-is to reflect authentic results and maintain consistency with the source language’s conventions.\n", - "\n", - "- Example page: [`data_types.html`](../individual_modules/introduction_to_r/data_types.html)\n", - "\n", - "We believe altering these outputs post-generation would compromise the educational integrity of the material, and have decided to leave them as they are originally. \n", + "Some tables created within our R-based teaching materials use multiple header rows or columns but do not include `headers` attributes in `` elements. This affects screen reader usability, particularly for complex tables. These are autogenerated from R output and are presented as-is to reflect authentic results and maintain consistency with the source language’s conventions. We believe altering these outputs post-generation would compromise the educational integrity of the material, and have decided to leave them as they are originally. \n", "\n", "### 2. Teal-Coloured Julia Warning Text\n", "\n", - "Some warning messages from the Julia programming language are displayed using a teal color that does not meet minimum contrast standards (WCAG 2.2 requires 4.5:1 for normal text). These warnings are auto-generated outputs when making use of `@code_warntype`.\n", - "\n", - "- Example page: [`performant_code.html`](../introduction_to_julia/performant_code.html)\n", - "\n", - "We have left these warnings in their original form to preserve the realism of the programming environment. \n", + "Some warning messages from the Julia programming language are displayed using a teal color that does not meet minimum contrast standards (WCAG 2.2 requires 4.5:1 for normal text). These warnings are auto-generated outputs when making use of `@code_warntype`. We have left these warnings in their original form to preserve the realism of the programming environment. \n", "\n", "### 3. Missing `scope` Attribute on `` Elements\n", "\n", - "Certain tables generated from statistical model outputs in R use `` elements without including a `scope` attribute to indicate whether the header applies to a row or a column. This can impair the ability of screen readers to correctly associate headers with corresponding data cells, especially in summary or regression tables.\n", - "\n", - "- Affected pages:\n", - " - [`logistic_regression.html`](../regression_analysis_with_R/logistic_regression.html)\n", - " - [`regression_analysis_with_r_extras.html`](../regression_analysis_with_R/regression_analysis_with_r_extras.html)\n", + "Certain tables generated from statistical model outputs in R use `` elements without including a `scope` attribute to indicate whether the header applies to a row or a column. This can impair the ability of screen readers to correctly associate headers with corresponding data cells, especially in summary or regression tables. These outputs reflect the default rendering of R model summaries and have been retained to represent R’s output format accurately, and have so been left within the website for authenticity. \n", "\n", - "These outputs reflect the default rendering of R model summaries and have been retained to represent R’s output format accurately, and have so been left within the website for authenticity. \n", + "### 4. Auto-Generated Output with Insufficient Color Contrast\n", "\n", + "Several pages contain output generated directly from R or Python packages, where the text color does not meet WCAG 2.2 contrast requirements. These outputs are left in their original form to maintain fidelity with the tools being taught and to avoid presenting altered or potentially misleading results. These instances are the result of direct console or library output from R and Python, and modifying them would be disingenuous to the pedagogical intent of teaching the tools in their real-world usage context.\n", "```\n" ] }, From 9a24e5438c6df1c5aebbd1a608b6bf982ab4ca36 Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Wed, 6 Aug 2025 09:49:24 +0100 Subject: [PATCH 7/9] Update accessibility statement to align with gov.uk guidance --- cfrr_program_details/accessibility.ipynb | 35 ++++-------------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb index f63151c1..1424e3a9 100644 --- a/cfrr_program_details/accessibility.ipynb +++ b/cfrr_program_details/accessibility.ipynb @@ -7,40 +7,17 @@ "source": [ "# Accessibility Statement for CfRR Courses\n", "\n", - "At **Coding for Reproducible Research (CfRR)**, we are committed to ensuring digital accessibility for all users, regardless of ability or technology. We are actively working to improve the accessibility and usability of our website and strive to make our content inclusive for the widest possible audience.\n", + "University of Exeter is committed to making its websites accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018.\n", "\n", - "## Measures to Support Accessibility\n", + "This accessibility statement applies to the [Coding for Reproducible Research (CfRR) website](https://coding-for-reproducible-research.github.io/CfRR_Courses/).\n", "\n", - "We aim to:\n", + "This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 AA standard, due to the non-compliances listed below.\n", "\n", - "- Follow the [Web Content Accessibility Guidelines (WCAG) 2.2 AA](https://www.w3.org/WAI/standards-guidelines/wcag/) standards.\n", - "- Use clear and simple language where possible.\n", - "- Provide structured content using headings and lists.\n", - "- Offer alternative text for images and visual elements.\n", - "- Ensure sufficient color contrast for text and backgrounds.\n", - "- Make our website navigable by keyboard and accessible to screen readers.\n", + "This statement was prepared on 6th August 2025. The statement was last reviewed on 6th August 2025.\n", "\n", - "## How Accessible is this Website?\n", + "The [Equality and Human Rights Commission (EHRC)](https://www.equalityhumanrights.com/) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’).\n", "\n", - "We know that some parts of this website may not be fully accessible, for example:\n", - "\n", - "- Some older documents and embedded materials may not be fully compatible with assistive technologies.\n", - "- Some visualisations and interactive elements may not have complete keyboard or screen reader support.\n", - "- Downloadable files may not always be in accessible formats.\n", - "\n", - "We are working to address these issues and welcome feedback from users to help us prioritize improvements.\n", - "\n", - "## Reporting Accessibility Problems\n", - "\n", - "If you find any problems not listed on this page or think we’re not meeting accessibility requirements, please contact us:\n", - "\n", - "- **Email:** codingforreproducibleresearch@exeter.ac.uk\n", - "- **Feedback Form:** https://coding-for-reproducible-research.github.io/CfRR_Courses/contributing/suggestions_form.html\n", - "\n", - "## Preparation of this Accessibility Statement\n", - "\n", - "This statement was prepared on [15th July 2025]. It was last reviewed on [15th July 2025]. \n", - "This website is regularly tested for accessibility issues, and we aim to update this statement and our site as we improve.\n", + "If you’re not happy with how we respond to your complaint, contact the [Equality Advisory and Support Service (EASS)](https://www.equalityadvisoryservice.com/).\n", "\n", "```{important}\n", "## Known Accessibility Issues\n", From a850550acd5efbfb29cdd7ac581e18dfcd0e5617 Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Fri, 8 Aug 2025 13:38:53 +0100 Subject: [PATCH 8/9] Add feedback mechanism and rename known issue section --- cfrr_program_details/accessibility.ipynb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb index 1424e3a9..164a6fb5 100644 --- a/cfrr_program_details/accessibility.ipynb +++ b/cfrr_program_details/accessibility.ipynb @@ -13,14 +13,21 @@ "\n", "This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 AA standard, due to the non-compliances listed below.\n", "\n", - "This statement was prepared on 6th August 2025. The statement was last reviewed on 6th August 2025.\n", + "To notify us of any accessibility compliance failures or to request information or content excluded from the scope of the Directive, please use one of the following methods:\n", + "- **GitHub issue**: [Submit an issue](https://github.com/coding-for-reproducible-research/CfRR_Courses/issues/new) \n", + " Please include the URL of the page where you encountered the issue and a brief description.\n", + "- **Email**: codingforreproducibleresearch@exeter.ac.uk\n", + "\n", + "All enquiries and requests sent through the feedback mechanism will be handled by the Coding for Reproducible Research team. Responses are typically provided within --Agree upon number here-- working days.\n", + "\n", + "This statement was prepared on 6th August 2025. The statement was last reviewed on 8th August 2025.\n", "\n", "The [Equality and Human Rights Commission (EHRC)](https://www.equalityhumanrights.com/) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’).\n", "\n", "If you’re not happy with how we respond to your complaint, contact the [Equality Advisory and Support Service (EASS)](https://www.equalityadvisoryservice.com/).\n", "\n", "```{important}\n", - "## Known Accessibility Issues\n", + "## Non-Accessible Content\n", "\n", "### 1. Tables Generated from R\n", "\n", From b2ebdafd89704d9acd6b7c72c8fc975b659dd240 Mon Sep 17 00:00:00 2001 From: Liam J Berrisford Date: Fri, 8 Aug 2025 13:42:19 +0100 Subject: [PATCH 9/9] Remove number of working days as its not mandated for inclusion --- cfrr_program_details/accessibility.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cfrr_program_details/accessibility.ipynb b/cfrr_program_details/accessibility.ipynb index 164a6fb5..053e2ac4 100644 --- a/cfrr_program_details/accessibility.ipynb +++ b/cfrr_program_details/accessibility.ipynb @@ -18,7 +18,7 @@ " Please include the URL of the page where you encountered the issue and a brief description.\n", "- **Email**: codingforreproducibleresearch@exeter.ac.uk\n", "\n", - "All enquiries and requests sent through the feedback mechanism will be handled by the Coding for Reproducible Research team. Responses are typically provided within --Agree upon number here-- working days.\n", + "All enquiries and requests sent through the feedback mechanism will be handled by the Coding for Reproducible Research team. \n", "\n", "This statement was prepared on 6th August 2025. The statement was last reviewed on 8th August 2025.\n", "\n",