6 ms·
I work on ADA a lot for my company. Please put on some headphones, turn on the voice assistant of your OS, put on some blinders, and run your app or website… no
by rootedbox 1mo ago
I work on ADA a lot for my company. Please put on some headphones, turn on the voice assistant of your OS, put on some blinders, and run your app or website… no mouse, just keyboard.
1. Democracy is about access; make sure everyone has access to your software.
2. The keyboard allows folks with disabilities and power users to fly through your website/app… that being said… the second a tab is off, the person with a disability flies into a wall.
- ckardaris 1mo agoThat's a good point. Accessibility is the next step that should also not be ignored. Navigating to the elements is one thing, but for the voice assistant to work properly it can be a little trickier.
- thefunnyman 1mo agoYeah unfortunately this seems to be something very few outside of bug tech dedicate resources to. Even for them it seems to be an afterthought, at least in my professional experience. It winds up another compliance checkbox just like security.
- deleted 1mo ago[deleted]
- CamperBob2 1mo agoWhat do you mean by "a tab is off?"
- IshKebab 1mo agoNormally you press tab to move between widgets. I guess he means if the tab order hasn't been set up properly.
- theeyescanner 1mo agoIt's been a while since I've done actual development, but determining tabindex ordering was a very big deal in the early 2000s when clerks/admins were moving from legacy systems to the web. They did most of their jobs with a keyboard, and if you set up tabindexing so that they can use a keyboard for 90% of their job then they would fly through tasks. If you didn't then you'd have some very angry clients at the end of the project ;) So just echoing that this is not just an accessibility thing, but just a good user interface design thing. If your UX designer isn't taking keyboards into account (jettison mobile first development into the sun please) then they have no business building business applications.
- nottorp 1mo agoI worked on an accounting application once. We had the proper tab order written down on paper docs and checked/updated it regularly. We would have been murdered by at least the point of sale people otherwise :)
- Sarkie 1mo agoI worked in hotel industry, same deal. Power users would complain within hours
- mikepurvis 1mo agoUsing tab to cycle between interactive elements in a window or page. As soon as you tab and it goes somewhere unexpected, you're cooked.
- gramie 1mo agoI had to keep accessibility in mind a lot in my previous job (web development for a university). The thing that I consistently found was that, the more accessible a website was, the better the experience for everyone, not just people with disabilities.
- deleted 1mo ago[deleted]
- phatskat 1mo agoI 100% agree. I've been working on a component library rebuild at work and accessibility is a key focus, granted I don't think that would be the case if some of our contracts didn't mandate it but it's fiiiiiine I'm someone who enjoys this kind of work, especially when the target is a stylized drop down - I got to spend a week with the MDN page for the ARIA combobox open, trudging through all of the ins and outs of keyboard accessibility and I know I'm still missing a couple things (typing when the control is focused but not open, for example), and having clearly defined specs is something we don't seem to get a lot in webdev
- rhdunn 1mo agoMy go to when implementing custom controls that can't be achieved in native HTML is the ARIA Patterns (https://www.w3.org/WAI/ARIA/apg/patterns/ https://www.w3.org/WAI/ARIA/apg/patterns/) site. That has clear documentation on the roles, states, and keyboard interactions for common UI controls. I've used it for things like a search bar with an autocomplete dropdown to get the keyboard interaction right.
- PunchyHamster 1mo agothat's generally the case with many accessibility features, not just for websites
- keerthiko 1mo agoyep, the curb cut effect is a well-researched and documented phenomenon [0] across ADA development in all aspects of the world. accessibility work isn't just about making things possible for folks with disabilities, it's about making things better for everyone. [0] https://en.wikipedia.org/wiki/Curb_cut_effect https://en.wikipedia.org/wiki/Curb_cut_effect
- algoth1 1mo agoMy father is blind, the only tech he knows how to use is a smart tv, when i build him custom apps the first thing i do is turn off talkback when the app opens, so i can control what tts says. The regular talkback is so so annoying and repetitive
- cute_boi 1mo agoThe issue with accessibility is bots from scrapefly or browserbase will abuse website to death. There is reason why we can't have good things due to abuser like scrapefly, browser base, anchor browser etc... I had to turn off all the accessible selector and randomized html soup to make their life harder.
- novok 1mo agoThe solution is redirecting to an actual API or MCP with the same ability as your GUI, along with a real way to export your data. This is the future with how AI agents will work whether you like it or not. People are not going to want to deal with a GUI if an agent can do it better and faster for them.
- goosejuice 1mo agoDefinitely not a substitute, and a bit slow, but GPT computer use is demonstrating an alternative path with live vision models. I'd be curious how this is fairing for those with vision impairments.
- stillpointlab 1mo agoI believe AI can be huge here. Things like ADA are often mechanical (adding the correct attributes to the most important page elements). It is the perfect work to audit and fix using agents. It is a business opportunity as well. I worked at a company that paid for an audit before LLMs. There is tremendous cost savings possible here. I also wonder if WebMCP will be the ultimate final incarnation of this.
- z3c0 1mo agoUsing AI to close gaps in accessibility is like adding treads to your vehicle because society is too lazy to pave roads.
- MrJohz 1mo agoI think they were suggesting using AI to audit for accessibility, which is probably a better approach, and probably more effective than a lot of the basic accessibility checkers out there that work on a list of fairly simple rules and don't understand the context of what they're doing, so tend to give either very limited advice, or sometimes even offer bad advice.
- z3c0 1mo agoResearch and fallbacks would certainly be better. An 85% design, 15% algorithmic solution is probably the sweet "pobody's nerfect" spot, but a company using AI to solve accessibility is like selling rape whistles -- in a perfect world, your market is nonexistent.
- stillpointlab 1mo agoI think people outside of enterprise have no idea the cost to audit and fix a massive website. The law is a forcing function here. Lawsuits can and do happen when sites of a certain size fail to implement government-mandated laws. This is a good thing, IMO, but it only comes into force in the largest cases. If there is a credible path to 1/10th the cost (while still providing liability insurance which is a critical piece) then that will likely encourage more enterprise to do it proactively, and will open the door for startups and mid-sized companies. I have no idea why anyone would choose to see this as bad.
- netbioserror 1mo agoWhy not have WMs and DEs specialized for specific disability categories?
- shakna 1mo agoBoth your window manager, and desktop env, already have a gigantic tree of accessibility systems built into it. ... And then your app turns into a canvas made in Electron.
- Sarkie 1mo agoI used to do loads of accessibility testing with my sites. I was fired because I did too much once
- robomartin 1mo ago> Democracy is about access No, not really. I know what you are trying to say, and I fully agree. We need to stop using "democracy" or "democratizing". Democracy, in it's purest form, is about mob rule --majority rule, if you want to say it in a softer/kinder way. "Democratizing" means giving a mob control of the thing, it does not mean making it accessible to all at all.
- iLemming 1mo agoDemocracy is not about mob rule, it's about a dialog. Sure, sometimes it becomes heated argumentation and noise, but it's not so much about "ruling". Lincoln in his union address in 1860 said: "I so adopt it because it furnishes a precise and an agreed starting point for a discussion between Republicans and that wing of the Democracy headed by Senator Douglas." "Democratization" in a sense is about making things accessible for discussions. "Dictatorship" is the opposing term - things get "dictated" by a single entity - person, political force or a corporation.
- robomartin 1mo ago> Democracy is not about mob rule, it's about a dialog. No my friend, Democracy is majority rule, which easily turns into a ruling mob. It has nothing whatsoever to do with dialog. Also, your quote of Lincoln's address is taken completely out of context. He was talking about his opposition of the ideas of a faction of Democrats who were in favor of slavery and his support of the majority of Republicans who believed slavery was a moral, social, and political evil. In other words, take the time to at least do some research before you try to use quotes in support of a failed conclusion. Did you read the Greeks in school? Probably not. I recommend Plato's Republic. Both he and Socrates talked about the flaws of direct/pure democracy that would usually make it degenerate into mob rule. In Republic Plato developed a hierarchy: Aristocracy: Rule by the wise (my comment: a fantasy) Timocracy: Rule by the honorable (my comment: another fantasy) Oligarchy: Rule by the rich (my comment: a reality in many societies) Democracy: Rule by the masses (my comment: glad we don't have this) Tyranny: Rule by a despot (my comment: plenty of examples of this in history) It took until the late 1700's for the idea of a representative democracy to actually take hold, with Alexander Hamilton being credited with the terminology. So, "democratizing" means letting the masses have their way. It does not mean making things accessible to everyone, which is the hilariously or tragically ignorant way in which Silicon Valley tries to use the term. You see startups all the time say "we are democratizing <X>". Just how stupid are these people? They are saying we are going to let the mob have access and benefit from <X> not making it available to everyone. In the context of Plato’s political philosophy the modern, casual use of the word "democratizing" completely ignores the historical and philosophical baggage of the root word democracy. The irony is that modern society uses "democratize" as an undisputed positive term (meaning liberation and fairness), while the very philosophers who birthed western political thought used "democracy" as a warning label for instability and lawlessness. A better term for what startups want to say would be "commoditizing": turning a specialized, elite resource into a public good or a widely available commodity; not "democratizing", which is an ignorant use of a term that means almost exactly the opposite. I guess classical education has not been a part of schooling for quite some time. As a kid I did not necessarily enjoy reading the Great Books. As an adult, I can see how much damage has been caused by the abandonment of such valuable teachings.
- gblargg 1mo agoThat was my first thought, that a TUI is still a GUI. Close your eyes and explain how you can use a TUI from the keyboard. The only difference is what the display can render.
- tptacek 1mo agoModern GUI frameworks maintain a visual UI tree for on-screen interaction, and a semantic tree for accessibility features. You can find TUI libraries that do things like this, but for most TUIs, if you close your eyes and have the UI read to you, you're going to hear "dash dash dash dash dash dash bracket dash", because the fundamental concept of a TUI is in-band UI signalling. For accessibility (the topic of this subthread), TUIs are not like GUIs.
- cpeterso 1mo agoI worked on Microsoft’s Windows QA team long ago. My team used to have “No-mouse Tuesdays”: you were supposed to do all your normal work but only using the keyboard.
- kulahan 1mo agoWhat I wouldn't give to work for a company that actually cares about QA.
- wolvoleo 1mo agoWhich is not Microsoft. Maybe back in that day but today no. It's more Quality Assumption now :)
- mghackerlady 1mo agoEven back in the day they were bad. Things generally worked but were rarely pleasant
- huflungdung 1mo ago[dead]
- BobbyTables2 1mo agoI assume MouseKeys was cheating ?
- cpeterso 1mo agoSend fair to me: someone’s got to test Mouse Keys! :)
- high_priest 1mo agoI guess that team was dismantled some time ago, with no on carrying the flag anymore. Modern windows is impossible to work on using just keyboard. Some mods & extensions do help. But the native experience is abysmal.
- jameshart 1mo agoIn the context of discussing TUI vs GUI (as the article does), the accessibility and keyboard control balance probably swings very strongly to native GUIs; in a TUI you’re at the whim of the TUI framework’s stabs at accessibility support, while on a full fledged native UI you have all the bells and whistles of focus management and text to speech and voice control and high contrast and magnification and motion adjustments… The idea that it must be more accessible because it’s confined to a mono space typeface and communicates state mostly by changing the foreground and background color of the text it renders makes no sense to me.
- wolvoleo 1mo ago> The idea that it must be more accessible because it’s confined to a mono space typeface and communicates state mostly by changing the foreground and background color of the text it renders makes no sense to me. That's not why. It's because TUI apps have to be designed around the strong possibility that a mouse isn't even available. Also in a TUI you never ever have that issue that some text isn't copy/pastable like some dialogue boxes, in which case the screen reader might have issues picking it up too. And in a TUI you don't have to deal with that window management crap. Moving stuff around because something else is on top. Everything happens within that little square.
- loglog 1mo ago> Also in a TUI you never ever have that issue that some text isn't copy/pastable like some dialogue boxes May I present OpenCode, which somehow managed to break copy from terminal: https://github.com/anomalyco/opencode/issues/4283 https://github.com/anomalyco/opencode/issues/4283
- jameshart 1mo agoNot requiring a mouse isn’t a magic pathway to ‘accessibility’ though. The fact that something can be used with a keyboard does not obviate developers from the need to consider other aspects of accessibility. Also: when I copy paste out of an application I don’t want a bunch of spurious chrome glyphs and newlines - copying just the text contents of a TUI scrollable text field isn’t trivial and isn’t always guaranteed to work
- terrut 1mo agoI'm able. I have no idea or wish to go cosplay as my mental model of someone having to use tools to access my website. I use accessibility tests that make sure content has readable colors. I set a content anchor so people can navigate without sight. I would really like to learn about any frameworks that can help me make my websites accesible to everyone. If there a gold standard?
- abejora 1mo agoThis is something that we have been working on in our app, but to be honest: it is hard. At first we wanted to be completely keyboard centric, but we had to pivot away from it. There is so much to learn in this space. There are small things, like dropping a 'jump to main content anchor' before the navigation so you don't have to tab through the top navigation everytime. But there are also certain pages en layouts which require a lot of thought on a good keyboard navigation flow. Combine that with the need for responsive layouts, our inexperience with accessibility tools, etc; and the required effort quickly adds up.
- nonethewiser 1mo agoAnd this is where the conversation gets ugly. Yes accessibility is important. And if you can add it with little additional effort, great. But its not the most important thing when you’re trying to get something off the ground with limited resources.
- spearfish 1mo agoThis has always been a bit of a drag, but the way we/I used to do websites and the way I still like to do them, was to focus on content, then apply a style and javascript layer as decoration. The keyboard navigation and accessibility considerations come more naturally then. For those that don't see this as important it feels like a case of cart before the horse. I ended up stuck on my back, bed-bound in 2005, with a keyboard on my thighs. Using OSX (probably Tiger) and mostly native apps it was possible to get by with just the keyboard. It was the only platform that I could use without a pointer and I was hardly pushing boundaries. These days just doing simple things like setting up a computer for the first time, I often can't be arsed with a mouse, or I am in places where there isn't room to use a mouse. I have to resort sometimes to a trackball out of necessity, but it's always a hassle and I frequently hit brick walls. Simple file managers can be nightmare enough. I remember just trying to navigate to a taskbar on some desktops being impossible. I couldn't get to something like the network manager applet. Thankfully there's a CLI for that now. On the flip side, I also love the idea that you can do most things with a simple pointer. I was trying Batocera linux recently on a laptop, the touchpad wasn't recognised, it's a gamepad driven OS (I think a layer on retro-arch), and navigating with a gamepad (once you RTM and figure it out) is actually quite nice. Kodi, has always been a bit of a faff on the keyboard, and that works well with the gamepad. Kodi was born on the Xbox so this of course should be a given. The UI for me with a keyboard has always been a bit clumsy.
- rustystump 1mo agoHaving done exactly this for adding accessibility into a crypto wallet in the past, (yes crypto wanted even the disabled), it is plainly obvious why this is not standard. It is an absolute train-wreck trying to get everything to work and for the overwhelming majority of products it isnt work the effort. It isnt like you put a wheelchair ramp up and are done. It is a constant battle with every change. It is just another one of those things where the minuet minority suffers. Now if a company got some tax write off for it, that would change things.
- bonestamp2 1mo ago> the second a tab is off Can you explain what you mean by this phrase?
- Muskwalker 1mo agoA conventional way to navigate GUIs is by using the Tab key to jump from control to control. A common way this can fail is if the Tab key traverses through the UI elements in an unexpected order.
- greggsy 1mo agoAlso, please avoid animations and transitions, or at least add a button to reduce them.
- ckardaris 1mo agoThis is where using a common framework pays dividends. For example, on the desktop I can disable animations for all GTK applications.
- duskdozer 1mo agoMy people. I can't tell you how much time I spend trying hack these out, especially when base libraries hard code them. Accessibility isn't just sight/non-sight.
- Cthulhu_ 1mo agoRelevant WCAG sections: https://www.w3.org/WAI/WCAG21/Understanding/pause-stop-hide.html https://www.w3.org/WAI/WCAG21/Understanding/pause-stop-hide.... and https://www.w3.org/WAI/WCAG21/Understanding/animation-from-interactions https://www.w3.org/WAI/WCAG21/Understanding/animation-from-i.... Basically, respect the "reduce motion" OS settings.
- marsven_422 1mo ago[dead]
- zelphirkalt 1mo agoI have a traditional desktop app/GUI app, where I have a table (treeview) of words with their translations and pronunciation (like a dictionary). There can be thousands of words in there. Also there is a filter/search field, where one can input any string to filter the table while typing, or confirming pressing enter/return. The words in the table can be in any language, if the configuration of the application is adjusted to the language. How would I make this more accessible for the blind or people with bad vision?
- deleted 1mo ago[deleted]
- Timwi 1mo ago1. Make sure that the tree view control has screen reader support and that it has all the normal keyboard commands (such as right/left arrow for expanding/collapsing a parent node). 2. Make sure that the text box has a label that says “search” or “filter” and not just a magnifying glass icon. You can only get away with an icon if the GUI toolkit allows you to give it an alt text. 3. Make sure that this label has a hotkey (underlined letter) and that it's properly linked to the textbox so that pressing the hotkey actually focuses it. 4. Make sure that the tree view is next after the textbox in the tab order. 5. Make sure that it's obvious how to cancel a search. You've already assigned Enter to performing the search (as opposed to closing the dialog) which means you can't use Escape because that is already required for closing the dialog. I think one way is to let the user empty the textbox and press Enter to clear the search, but you can also have a separate button as long as it has a hotkey and an alt text if it's just an icon. This kind of button is allowed to sit between the textbox and the tree view in the tab order, but make sure it stays that way and you don't add 10 more buttons there so navigating to the tree view becomes arduous. I think it's ironic that I can give all of this advice just by being a keyboard user. I'm not visually impaired and I don't use a screen reader.
- zelphirkalt 1mo agoHm OK thanks for the pointers. Point 1: I don't know whether tkinter's treeview has screen reader support. I will have to look into that. But what I did already do is to make it focusable, which it wasn't by default, I believe, and add controls like: up, down to select rows, pos1/home and end to go to first row or last row, space to select/highlight a row, I left right and left arrow key for opening and collapsing items, added enter and various other keys to trigger actions for focused row or all selected rows. Point 2 I definitely have. Point 3: I defined a shortcut (ctrl+f) that always focuses the text input widget of the filter, but I don't have a letter underlined in the label. The label is actually "Quick search" and not "Quick filter", which means I couldn't underline an "f". But also underlining any letter might indicate, that one could press ALT+letter to focus the input. Maybe I should add another shortcut to facilitate that and then truly underline the appropriate character. Maybe change the label to simply read "Filter" and use the "F". Point 4 I have. The filter is directly under the treeview/table, and only one TAB away. Point 5 I don't have, because as the user starts typing in the filter input field, the treeview/table is already being filtered concurrently. Pressing enter is just for when you want to repeat a search and not change the filter term. For example, when the words have changed concurrently due to other actions. There is no dialog to close, because this is all in the main window. I have been thinking about adding a dialog that displays a progress bar, or adding a progress bar in the bottom status bar of the application. There a stop button might be useful. But so far the searching/filtering finishes in milliseconds, so no one would have time to click that stop button.
- bradgessler 1mo agoWhen building web apps, I prompt humans and AI with “the best design is accessible design” and start from there. It always ends up being faster, clearer, simpler, and better.
- jojobas 1mo agoI understand the sentiment, but there are limitations. You can't make a wheelchair-accessible treehouse, but that's not an argument against treehouses. Democracy is about letting people do whatever they want, the laws that forbid treehouse cafes aren't particularly democratic.
- Zigurd 1mo agoBoth Google and Apple have MCP-like interface frameworks for agents that developers can enable so their apps are not dependent on touch or vioce or keyboard or pointing device or D-pad interactions. This is the correct way to do it because it puts the interaction responsibility into the agent, not the app. That enables the agent to work across multiple apps to achieve tasks by interacting with the user. That's where both sides of the interaction should live. That's where the context of the interaction exclusively lives because no individual app holds the full context. That also makes it the place where solving adaptive interface challenges is best implemented.
- Shebanator 1mo agoCouldn't agree more. Using a screen reader is an incredible learning experience, and it really teaches you just how extraordinary people can be: its incredibly difficult to get anything done. And then there are the people with motor disabilities, the deaf, and on and on. I got interested in accessibility some 30 years ago, when I got to visit the lab at University of Washington. Its unbelievable the progress that has been made. And AI is having a huge positive impact as well. I'll also say that if you can get a chance to go to a place like a google accessibility lab for a demo or even better watch a live usability test with disabled users, do it!
- inigyou 1mo agoHow do you square this with YAGNI? A lot of development time can be wasted making something disabled-accessible that will never have a disabled user.