-
-
Notifications
You must be signed in to change notification settings - Fork 30
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 Meetings Minutes #98
Comments
Just a note that you may wanna ping the folks over in jupyter/accessibility#11 as they are all very keen on improving a11y across the Jupyter ecosystem |
09.30.20 Meeting MinutesAttendeesMartha (@marthacryan ) NotesSay hello!Introduce yourself however you like. What do you want to get from this meeting?
Why this meeting? Why now?
What goals do we have?
What are people working on?
Next steps
|
also pinging @manfromjupyter who mentioned they might be interested in joining in on accessibility conversations! |
At @choldgraf's suggestion, I'm pinging all of the participants from jupyter/accessibility#11, ie the folks who would have been jupyter a11y workshop attendees, had the workshop happened: @sinabahram As we try to renew the push on making jlab accessible, your involvement in the working group would be most welcome. We've got plenty of enthusiasm and jlab know-how, but we are critically short of actual a11y expertise. Any input would be greatly appreciated. In addition to the meetings, the working group has also been chatting a lot on gitter: https://gitter.im/jupytercalpoly/accessibility. The gitter channel is where we've actually been arranging the meeting times and rooms. |
That doesn't seem right. I would think that the using aria-label would be the ideal solution here. Not sure why you would need to hide the text of an icon button off-screen that seems ludicrous to me. @sinabahram don't you agree? |
A few things. First, putting text inside the button could be thought of as preferred over using ARIA, and yes, the appropriate way to do that is with an sr-only class on the inner text. This follows the principle often quoted as "The first rule of ARIA is not to use ARIA", and you obviously do not "need" ARIA to label a button. Having said the above, I'm unaware right now of any lack of support of aria-label amongst the popular screen reader/browser combinations, so this is a trivial issue, and please feel free to use aria-label to label the buttons. Next, this touches on the point I was trying to make earlier. I think attacking low hanging fruit like unlabeled buttons is wonderful. It will have real impact for sure, but it is a small fraction of a fraction of what is required to actually make significant progress towards an accessible experience. To that end, I suggest that you need a strategy for these various patterns, be it unlabeled controls, grouping techniques, container semantics, heading semantics, traversal patterns with alt+shift+f6 and alt+f6 (you can't use f6 alone because that will conflict with browser's native f6 implementation), image descriptions, when to have automatic announcements, and so forth. None of the above tackles the trickier issues around content editable, mode toggling, and code-related features, all of which need their own conversations of course. Moving beyond the above tactical issues into matters more strategic around accessibility, there need to be several conversations around how these semantics are conveyed and reasoned about within the system. It's been a while since I've been in the code, but I remember a dedicated UI library happening via Phosphor or something like that, along with certain assumptions about functionality and accessibility mappings therein being made at various places up/down the stack. Some of these decisions will need to be revisited with an eye towards accessibility because the approaches/patterns I reference above, once agreed upon, can then be templatized in a way that doesn't require doing a ton of work every single time we want to create a button, add it to a toolbar, etc. Same goes for menu options and much more. I hope this helps a bit, and I'm happy to find time to hop on a synchronous call to discuss further. |
Going to second what @sinabahram said. It is the best practice to inject hidden text to the elements over aria-ing if you can.
|
10.21.20 Meeting MinutesAttendeesMax @telamonian NotesLogistic check in
Proposed GoalsWe'd like to propose concrete accessibility goals would be so that we can organize it into JupyterLab's release cycle and encourage people to focus on them. These are some ideas of where to start.
What are people working on?Isabela
Next steps
|
Following up on some of the next steps from the 10.21.20 meeting minutes, here's what's next in terms of meetings. On Monday (Oct 26) 1:00pm Pacific @jasongrout will guide us through some of the accessibility work started at the root of JupyterLab in Phosphor. Meeting on Zoom. We also agreed on a time to schedule these recurring meetings so that we can post a link publicly. For now, we will meet every other Wednesday at 10:15am Pacific (right after the JupyterLab weekly team meeting ends). That means the next meeting is November 4 at 10:15am Pacific. Meeting on Zoom. |
thanks for posting these notes online! If we decide to make a push on getting funding to hire developers for accessibility work, this is something I am happy to help with 👍 |
These notes are from a supplementary meeting to the regular and more general JupyterLab accessibility meetings we've been holding. It was lead by @jasongrout. Walkthrough Phosphor Accessibility PRs Meeting Notes (10.26.2020)AttendeesJason Grout @jasongrout ContextThis is related to the Web4All Hackathon on Jupyter from 2019 at the LightHouse SF. Accessibility standards tend to be written based on HTML forms or similar standard web use cases. Sometimes it's difficult to figure out how that impacts JupyterLab since we use lots of things in ways that weren't intended in the design of such standards. Some people worked on the "low-hanging fruit" in JupyterLab (like dialogs) and some people started working on Phosphor since it makes architectural decisions that interfere accessibility higher up.
WIP ReposWhere a lot of this work lives. Closed issues were pulled upstream. Open issues hold discussions and work that still needs to be done.
Relevant PRs and Issues
Miscellaneous Notes
Next steps?
|
11.04.20 Meeting MinutesAttendeesMartha @marthacryan NotesIf needed, recap/point to the notes and resources for our Phosphor PR meeting last Monday for people who weren't able to make it.
Are these meetings something we'd want to have on the Jupyter community calendar?
What are people working on?
Next Steps
|
These meetings will now be on the main Jupyter (jovyan) Zoom channel and are on the JupyterLab Community Calendar! Up to date info will be on the calendar. I will continue posting meeting minutes here, and will note if that is to change. Thanks for everyone's continued interest and work. 🌻 |
It looks like we now have all 3 of the old phosphor a11y PRs redone as lumino PRs: jupyterlab/lumino#129 The first two have already been merged, jupyterlab/lumino#132 still needs review/merging. Way to go @marthacryan |
11.18.20 Meeting MinutesAttendeesMartha @marthacryan Notes
What are people working on?
Next Steps
|
This is really exciting to see all of this progress - thank you @isabela-pf for posting these notes, I really appreciate it as somebody who is dealing with a 3 month old and thus cannot make these meetings! Excited to see what an audit comes up with in JupyterLab :-) Two quick points:
|
@tony, per your comment in the meeting about what tools were used, here is exactly what I used to do everything. For Contrast, Heading structure/ordering, and Landmark usage, I use https://khan.github.io/tota11y/. Simply add the link at the very button of it (detailed in directions) to your browser bookmarks and it creates a pure JS overlay that tests all of those things and very well. No extensions needed. Using the tota11y tool: Or if you don't trust extensions of foreign JS you can do it manually to each element in question with the Chrome Inspect element which for the last ~8-10 versions has done this. It's pretty cool and works most of the time. For Screenreading, I tried NVDA this time but disliked it. Just having to push a key at the same time I am also tabbing, arrow keying, jumping to different headers or tables, etc just was annoying and didn't seem to even work half of the time (very possible I just don't know the software fully). Have and will continue to use the JAWS application. It is unfortunately no longer free (as of June 2020), but for people that don't own it, each time you restart your computer you can use it for free for 40 minutes. For the paragraph, character, font-size, and line-height spacing test, I just manually input the CSS as there are so many different extensions that could be added that it just seems more consistent to do it manually. Just add the following CSS styles to your inspect element for the site you're testing on. No extensions needed.
For the Rendering without a Stylesheet test/tab ordering flow is logical test, as tedious as it is, I just manually delete all of the For Testing Low Vision just magnify your browser to 400% zoom for AA (WCAG version 2.0) support or 500% for AAA (WCAG version 2.1) support for these users (if I remember correctly). For the mobile/tablet tasks I either do the same or open the inspect element > device toolbar emulator. No extensions needed. And that's it. No extensions needed for anything, just some JS code bookmarked, your screenreader app, and some in-app manipulations you do to the styling. :) |
FYI, the design of JupyterLab is ~50-100 discrete "extensions" that all work together, and each have their own stylesheet to load. |
Hahahaha, touché. Makes sense. |
Responding to @choldgraf. I'm glad the meeting notes are helpful! Thanks for your continued feedback on them.
Thanks for the reminder! I put it on the agenda to bring up in the next meeting since I'm not sure how we might be interested in using it.
You are absolutely right that there are other places that I'm sure could also use accessibility improvements. Right now we made the choice to limit our scope in order to make goals that are reasonable for the number of people we have working on it, the time each can devote to this work, and the fact that we all have been working on JupyterLab lately. I agree though that the ideal case would be to continue building a community around this to work on the whole ecosystem. |
12.02.20 Meeting MinutesAttendeestony @tonyfast Notes
Triage of existing accessibility issues
What are people working on?
Next Steps
|
Regarding the last-minute push we talked about that we could rush into JupyterLab 3.0, here is where I filed it (https://github.com/jupyterlab/team-compass/issues/114) . Looks like it's 24 lines of code instead of 8 hahaaha, so apologies for that. Didn't expect some other things that needing addressing. Each of the sections within these landmarks need improving, sure, but provides 85% of the aria landmarks needed and upon deciding on a solution for the header part for screenreader users to parse through them, will make it accessible to them. So users may not be able to parse through the header or sidebar with this alone, but they can get to the container and see if any combination of tabs, arrows, or "screereader start reading here" will let them parse through it. If it's too much of a lift before the release, no worries, just wanted to throw it out there. P.S. Apologies in advance for screenreader users for the ticket. Included quite a bit of text in images and color-coded them to make them easier to understand because of the rushed situation. If you would like clarity on specifics of the proposed changes just let me know. |
@manfromjupyter that "low hanging fruit" diagnosis is awesome, thanks for that :-) |
Thanks for everyone's patience with me posting this week's notes. We had a really active discussion so the notes needed some organization to make them better match the meeting (and easier to read later). 12.16.20 Meeting MinutesAttendees
Notes
These discussions have identified four main accessibility needs for JupyterLab (can probably be extended to other Jupyter projects too)
JupyterLab Code EditorOur main focus today is the accessibility of JupyterLab's code editor as discussed in #4878 and the comments of #9399.
Agenda items not yet covered
Next Steps
|
I just wanted to add a small note. Just so that it is explicitly noted, the WAI-ARIA Authoring Practises are directly useful for the points on the screen reader accessibility of the menu bar.
Further, the section on keyboard navigation inside components describes how to manage the focus inside a composite component such as the menu bar. This is critical for screen reader users, as without it the screen reader can't let the user know where they are located in the menu bar! This section describes two ways to achieve this. Either one works well. I would expect the aria-activedescendant method might be easier though in the jupyter instance. |
@manfromjupyter JupyterLab Classic is a new project https://github.com/jtpio/jupyterlab-classic, basically provide the classic notebook experience but using all the JupyterLab components. Jupyter Notebook Classic != JupyterLAB Classic :) |
Yes! Sorry for not making that clearer - the point of |
@choldgraf Oh I misread, forgive me |
Because of the scale of JupyterLab's usage, I believe we should focus on
work that helps JupyterLab itself to become more accessible. Obviously,
jupyterlab-classic will benefit from that, which is also a good thing.
…On Wed, Jan 20, 2021 at 8:21 AM Man from Jupyter ***@***.***> wrote:
@choldgraf <https://github.com/choldgraf> Oh I misread, forgive me
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#98 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAGXUD2G53UHFEYKYVYGTTS237I5ANCNFSM4R7J3OPQ>
.
--
Brian E. Granger
Principal Technical Program Manager, AWS AI Platform ([email protected])
On Leave - Professor of Physics and Data Science, Cal Poly
@ellisonbg on GitHub
|
Again my point is not to work on Basically I'm suggesting that The reason I say this is because particularly in the educational space, many many people will prefer a streamlined notebook interface (they're still using the "old" classic notebook interface), and having an interface that:
Would greatly increase the likelihood that they would switch. |
The trouble with focusing on jupyterlab classic specific changes is that we only have audits and specifications for jupyterlab itself. If there were an audit and specifications for improving classic specific, i think we could move on this idea. without an audit like jupyterlab/jupyterlab#9399 it is hard to know what takes action. |
Maybe somebody else can review |
I'll let y'all discuss whether to take this approach or not, I'm just a fan of quick wins and iterative progress wherever possible :-) |
I think what this means is focusing on components such as the notebook, file browser and terminal first, since they are also used in JupyterLab Classic. Instead of the code consoles, status bar and other components in upstream JupyterLab only. |
if jupyter lab classic consists of a strict subset of components from jupyter lab, then it makes sense to prioritize components in such a order that jupyter lab only components are prioritized after the ones in classic, since then we would get to some fully accessible version of jupyter lab the most efficiently. in either case, I think the next priority component, at least for screen reader accessibility is the menu bar, code editor and file browser. |
01.27.21 Meeting MinutesAttendees(oops! No one signed in today so I gave my best guess.) What are people working on?
Other Notes
Merged PRs (let's celebrate!)
Next steps
|
Thank you/great work again Martha and Tony for getting us to that finish line for landmarks. Super awesome! Given the discussion earlier about some different sections that are top priority that can/should be worked on that will enable other efforts that all can be worked, here's a list I was able to add a lot of detail too and should hopefully be easy. Can all be done at the same time without affecting each other next that aren’t already being looked at:
One that is less important because it's a WCAG 2.1 requirement not WCAG 2.0 requirement but could be done at any time for non-typescript people that just just know CSS:
|
@manfromjupyter I am not completely sure, but I think officially HTML elements are only supposed to receive keyboard events if they have a tabindex. So, elements without one that have a onclick handler, might not reliably respond to spacebar or enter from a screen reader. Unfortunately, I don't have any time to contribute, but just wanted to say it might be worth adding a tabindex to these clickable elements and see if that resolves the issue. |
@SamKacer I think users just can't get focus on those nontraditional actionable elements to begin with, but you can gain focus technically anywhere (with JS or on any element you can get to with a screenreader). You may very well be right though and definitely worth doing first to see if it works on it's own. Either way, we need to add the tabindex="0" on there anyway to complete another requirement (and did include that in the info under point number 1). I just wanted to bring up that the lift is slightly higher than anticipated because even when making that change in my tests it doesn't expand the dropdowns. The script may need manipulation. But yeah, definitely start with a tabindex="0" to see if that makes it work. |
02.10.21 Meeting minutesAttendees
What are people working on?
Other Notes
Merged PRs (let's celebrate!)
|
Updated the top comment with links to each individual meeting's notes. I find this useful when trying to jump down to previous notes. Feel free to remove if you don't want it :) |
Not sure it is the best place. But here is a talk by CodeMirror author on accessibility with CodeMirror 6 (FOSDEM 2021): http://bofh.nikhef.nl/events/FOSDEM/2021/D.javascript/codemirror.webm |
02.24.21 Meeting MinutesAttendees
What are people working on?
Other notes
Next Steps
|
In case anyone missed it, meeting minutes will be moving to jupyter/accessibility for (hopefully) easier to navigate and more centralized knowledge. I won't close this issue right away, but I don't think an issue like this is the best choice for long term note storage. |
As promised, this week's (March 10) meeting minutes are in jupyter/accessibility. You can find them in this PR. I will post an update here for the next meeting in two weeks and then close this issue. Thanks so much for everyone's support! Please keep following progress and join the discussion on the accessibility repo! |
This issue has been mentioned on Jupyter Community Forum. There might be relevant details there: https://discourse.jupyter.org/t/how-do-i-get-started-contributing-to-jupyter/8551/1 |
Accessibility meeting minutes have been in jupyter/accessibility for a little while now, so I'm closing this issue. Hope to have you all join in over on their new home! |
We've decided to meet and discuss plans for a coordinated effort to make JupyterLab more accessible. This issue records meeting minutes for easy and public tracking.
These are open meetings, but since we don't have a schedule yet there is not public link to join. If you want to get involved with these meetings, let me know!
Previous meetings
The text was updated successfully, but these errors were encountered: