-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Accessibility Issues Needing Addressing for WCAG 2.1 compliance (As of Version 7.0.0a15) #6800
Comments
Hello! I noticed that the "skip to main content" feature is still not implemented. I have some experience working with accessible design and would love to contribute to this or any other open tasks listed here if it would be of any help? |
Thanks @seirani! If you would like to get started on this please feel free to open a PR. Thanks again! |
Awesome, thank you @jtpio! Quick question: I am trying to navigate the Jupyter Notebook codebase and am a little confused as to where exactly the HTML notebook files or .less files are located - I can find the template HTML files that are pretty sparse and seem to be configured elsewhere? But for a feature such as this one where I'd likely add a div and a link, where would I make that change to have it go into effect? Or do I have to run something first to make them appear? Thank you in advance! |
The templates are minimal and similar to the ones in JupyterLab. This is because the application populates the DOM on startup when the shell is created. Probably it would have to be implemented similar to what was done in JupyterLab: jupyterlab/jupyterlab#10126 |
Sorry for scope creep, but I forgot 2-3 things that I found just recently that are worth noting to get fixed.
|
There are at least 14 remaining tasks, could we identify which would be release blockers from these? |
Can we check this one? I believe this one was also reported in #6552 / jupyterlab/jupyterlab#14084 and fixed on JupyterLab side by jupyterlab/jupyterlab#14159. |
In the 31 May 2023 Jupyter Accessibility meeting (cc: @andrii-i), it was requested that people weigh in on which of the listed items on this issue are release blockers—defined as issues that prevent someone from using the notebook in full. I can only speak for myself, but here is my brief-as-possible thoughts on which are blockers and which are not. I've copied the tasks listed above and added my thoughts in the second level of checklists for each item.
|
Thank you for quick and detailed feedback @isabela-pf. |
Based on discussions during the calls, if certain issue is a regression vs Notebook 6 and if it is solvable in a reasonable amount of time should also be taken into account when determining release blockers. |
This came up in yesterday's accessibility call. During that call, I committed to attending the triage meeting on Tuesday, June 13 (I've added it to my calendar). If this issue still needs triaging at that point, I can help then. (I'm going to be out all next week, is why I can't attend next week's triage.) In the meantime, here's how I would go about identifying release blockers by Andrii's definition in today's accessibility call. The definition he shared is that release blockers are problems that prevent people from using major features of the Notebook. I would start with the list of things that Isabela identified as blockers above and ask three questions:
If you answer (yes, no) or (yes, yes, no), then the issue should be triaged into the release blockers list. However, it came up in the call that it might be disingenuous or confusing to call them release blockers if they don't actually block the release. I'm not really equipped to answer the first two questions, but I can help answer the third question about whether existing workarounds are accessible, which is why I think the fastest way to triage the above list is synchronously, so we have enough information in the heads of the people in the room to answer all three questions at once for each of the items in the list. |
Since there are very limited resources on Notebook 7 at the moment, I think we should consider an issue as blocking if it prevents someone currently using Notebook 6 to migrate to Notebook 7. Either because there is a big regression, or because something is missing in Notebook 7. Normally accessibility should already be largely improved in Notebook 7 as of today compared to Notebook 6. All the issues mentioned above should eventually be fixed for sure, but they could also go in |
Just three comments on @isabela-pf's. Thank you making that btw.
This is needed for blind users because properly made semantic
You're right that users with ambulatory disabilities can just try to figure out what these icons mean by looking at them and at worse try each one and remember. Being able to see the tooltip though that even says what the keyboard shortcut is to hit it at any time (ex. SHIFT + ENTER) to run a selected cell, this is pretty big for their experience and sanity.
Not sure if this is a path you want to go but I always add this kind of capability by doing the following.
/* ===== Make Screenreader-Only Alert ===== */
function makeScreenreaderAlert(element_id, on_message, off_message){
let element = '#' + element_id;
if ($(element).length){
$(element).text(message);
}
else {
$('#screenreaderAlerts').apend('<div id="' + element_id + '" role="alert">' + message + '</div>');
}
}
makeScreenreaderAlert('notebookActionAlert', 'Cell has finished running.'); The purpose of the element_id part of it is so you can override it with other actions of the same type and users can re-read alerts as they wish and it doesn't take away from the visual-user experience. Example of the former is if you want to fire one on cell run start and cell run finish, if it's a 20 second cell run, it could alert them that |
Thank you for feedback everyone. Moving to 7.0.x for further follow up after Notebook 7 release. Related comment: #6307 (comment) |
it was shared there it might help to break the checklist into issues. i've started that process and added what i could. it would be awesome if folks could add any knowledge they have about solving any of these. lines of code, relevent prs. the more information we have the better chance we have for success. please, if the urge strikes you, help with splitting out the rest of the checklist. should we transition this issue into milestone? |
Thank you very much for creating so many issues @tonyfast, this helps a lot. We absolutely should assign them to milestones and add additional details where possible. We should start triaging these issues individually (started) and during calls. |
I know Jupyter Notebook v7 just announced huge accessibility improvements recently available in alpha but I wanted to throw my hat into the ring with remaining pieces before we celebrate fully that it's fully accessible. Lot of this is super low hanging fruit with potential huge impact.
Summary
Blind Users – minorly functional but with great annoyances.
Grade C
Low Vision – almost completely supported, mostly minor annoyances.
Grade A-
Color Blind – almost completely supported on light theme,
Grade A-
. SameA- on dark theme
Ambulatory - mostly usable, just a few blockers for supplementary actions.
Grade B
Deaf/Hard of Hearing - completely supported.
Grade A+
Cognitive - completely supported.
Grade A+
Seizures - completely supported.
Grade A+
Related to jupyterlab/jupyterlab#9399 but
NotebookV7
obviously much better and what should be recommended to persons with disabilities and just needs a few small fixes to be fully supporting of Low Vision, Color Blind, and Ambulatory users.Issues
Issues (Broken Down)
Language
<html>
element based on the language the content is being displayed as. If content is in English, needs to be<html lang="en">
, etc. (WCAG Criteria 3.1.1 (A) and 3.1.2 (AA))lang="default"
which reads my content in GERMAN (probably looking at the first 2 letters "de"). Need to have JS that powers this instead change to the proper lang codes.Focus
Issue Area # 1
Issue Area # 2
Content, Organization, and Navigation
Issue Area # 1
#main
Issue Area # 2
<div>
s within<div>
s not Table > THEAD/TBODY > TR > TH/TD. Without this blind users/screen readers cannot decipher that this is row data or what element corresponds to what row, how many rows there are, etc.Issue Area # 3
Issue Area # 4
Color, Contrast, and Zoom
Issue Area # 1
Issue Area # 2
The text was updated successfully, but these errors were encountered: