Ask HN: How to handle code reviews with a visually impaired coworker?
My dev team has switched to a workflow using merge requests and code reviews (mostly by commenting the merge request). Our tool is Gitlab.
I needed to embed a visually impaired co-worker in my team but I face some difficulties:
- Gitlab accessibility seems to be really bad and my co-worker is unable to use the interface to create Merge Request (he uses accessibility tools, of course). I dont'even speak about reading and writing comments in merge request.
- I don't know how to handle the code review process with him. We could do physical Code Review sessions, but it's difficult because I've a very chaotic schedule and so it's difficult to find a common timeslot. Furthermore, it's very difficult for my co-worker to handle all the remarks in one session for any Merge Request with a significant amount of code.
- I need to keep in place the existing tooling for the rest of the team
Does anybody knows of tools interfacing with Gitlab (or the git repository) or methodologies that could help us ?
60 comments
[ 6.1 ms ] story [ 107 ms ] thread[1]: https://github.com/vishwanatharondekar/gitlab-cli
[2]: https://github.com/mdsb100/cli-gitlab
Thanks for raising the question!
It's tough, I feel for them
Aren't you a developer? You're not a manager? Can you explain why you have a chaotic schedule? If you don't code, why are you doing code reviews then?
Seems like that's the fundamental problem right there. You said so yourself, physical code reviews would solve it. So that's the solution, the problem is your schedule, fix your schedule.
You're making this person accommodate your schedule(in addition to their own), because you don't want to do your job. Again, unless I'm missing something.
[1]: https://www.amazon.com/Sony-ICDPX370-Digital-Recorder-Built/...
He might have a head-start in terms of familiarity with existing tools. And he's best positioned to get an early sense of which solutions are (from his perspective) viable.
To be clear, I'm not suggesting he should have to solve this by himself, especially in his off-hours. Nor should it necessarily crowd out the work he wants to be doing. But logistically it makes sense for him to help with the task.
For me being able to see as much on a page as possible really aids me. For you to get a piece of code into your mind it seems like you’d have to have really sharp memory to store the relevant items in working memory as the screen reader recites the code one word/token at a time. Am I missing something or do you simply overcome this with badass memory skills?
And yes, the screen reader went super fast. I had trouble following it but I think that's mostly because I wasn't expecting what it was doing, whereas he was controlling the cursor so he knew more or less what he was hearing.
If you lose a finger, the brain remaps and makes your remaining fingers more sensitive. Blind people are known to be better at echolocation, which is part of what the tapping of their cane provides.
I think it's fair to say that most blind Windows users still use a third-party Windows screen reader. But at least they can use Narrator to get through the setup process and install their preferred screen reader.
I’d be curious if certain syntaxes are easier than others.
I've been wanting to try gerrit however: https://gerrit-review.googlesource.com/Documentation/dev-des...
Please report back on whatever you end up doing.
One caution I have is that long term you should consider moving away from the gitlab tools if they are unable to fix accessibility concerns, so that everyone is on equal ground.
I also don't know how flexible he is on which browser or operating system he uses; he may want to try some others to see if they work any better.
I generally think PR tools are all based on the same bad, diff-centric workflow that doesn't capture the narrative of the changes while bludgeoning the reviewer with minutia up front. The only defense my team has found is by making bite-sized PRs whenever humanly possible.
Listen to his response and get a clear idea of what does and does not work for his needs, then build your proposed solutions around that.
They have a free trial so maybe give it a shot? Since it’s a native desktop app it might integrate better with a screen reader.
Is it possible for this person to do merge requests with another person present, like pair programming? It might seem counterproductive, but more eyes on the code can't hurt and it'll hopefully fill any accessibility gaps until this person finds better tooling to solve this problem.
I’m pretty into the idea of accessibility but haven’t tried a screen reader myself. I definitely should but I bet the current app I’m working on would suck as it’s a sea of divs (I’m trying to change that by using headers, footers, and section elements).
Really powerful stuff reading what some of the developers in this thread do. I’ve always understood that the screen readers zoom by, it’s all very interesting to someone who takes for granted what they have.
As for the sea of divs in your application, here are the most important things you should do:
1. Don't use a div or span for a clickable element that acts like a link or button, unless you give it the appropriate ARIA role and handle keyboard focus. I'd say it's better to use a real link or button unless there's some reason that absolutely won't work with your CSS.
2. Put an ARIA main landmark at the start of the main page content. This can be a div with role="main", or you can use the main tag. I don't think it matters anymore which one you use.
3. If a page has section headings, use real heading tags (h1-h6).
Hope this helps. Thanks for paying attention to accessibility!
[1]: https://www.thewordnerd.info/blog/tma-the-tmux-automator/
https://groups.google.com/forum/?nomobile=true#!forum/blind-...
It's small and low traffic. You are welcome to join.
After all, the asynchronous nature of online code reviews is a good thing; it means the whole team can get involved on their own schedule. Also, electronic text is the universal format, accessible to everyone regardless of disability. Imagine if you or one of your other teammates were deaf, or had a severe speech impediment. All of you, including your visually impaired coworker, would still be able to collaborate through text.
I'm not surprised that he's having trouble with the GitLab web interface for merge requests. I'm going to assume that he's very proficient with his assistive technology and has tried every possible work-around on the website itself. GitLab also has an API, and someone linked to a couple of CLI tools elsewhere in this thread. If those don't help, your coworker should be able to hack together something that works for him. Or, if you really want to help him, talk to him about what kind of interface would work well for him, then hack it yourself. Just don't contort your team's process or your schedule around him.
It may seem that I'm being too tough on your coworker. But I'm visually impaired myself (see my profile), and have several blind friends who are programmers. I don't think any of them would ask for in-person code reviews as an accommodation because of an inaccessible web interface. Again, I appreciate that you want to help your coworker; I'm just trying to steer you away from what I believe is a misguided solution.