Hacker News new | ask | show | jobs
by criddell 543 days ago
All of the modern operating systems have good accessibility APIs. You ask why developers should take advantage of them? Because it’s the right thing to do and it’s usually not particularly onerous and accessibility accommodations usually make the software better for everyone.

Would you also question why builders have to make bathrooms wheelchair accessible in public buildings? It costs more and can be uglier and restricts the potential designs. Why shouldn’t the wheelchair builders have to make fancier wheelchairs that can navigate the spaces you want to build, right?

1 comments

Why should devs have to implement a separate API for 4+ different OSes? There should be one single API. The closest we have is AccessKit[0]. It's an awesome project, but this work should be funded by Google/Microsoft/Apple.

I'm not arguing GUI toolkit devs shouldn't implement accessibility support. It's a laudable thing to do. I'm pushing back against the meme that the responsibility lies primarily with them.

> Because it’s the right thing to do and it’s usually not particularly onerous

Have you implemented cross-platform accessibility support for a GUI toolkit?

> Accessibility accommodations usually make the software better for everyone.

Accessibility support bloats software. The most trivial example is websites. If you add full accessibility support to a website, it will be bigger, and therefore objectively worse for any user not taking advantage of the accessibility features. The extra bytes also add up over trillions of requests to have an environmental impact.

I think we should be exploring alternative approaches like hand-tuned accessibility-focused apps.

> Would you also question why builders have to make bathrooms wheelchair accessible in public buildings? It costs more and can be uglier and restricts the potential designs.

Strawman. Bathrooms exist in a physical space. Only one implementation can occupy that space, and disabled people have little choice but to interact with the implementations near them. Software distributed over the internet has no such constraints, and different products can compete on accessibility features.

Also, ramps are beneficial to almost everyone at various times. Most people will never use a screen reader.

> Why shouldn’t the wheelchair builders have to make fancier wheelchairs that can navigate the spaces you want to build, right?

Physical accessibility laws were created before modern electric wheelchairs. It might indeed make more sense to regulate (or subsidize) this at the wheelchair level. Do you think most wheelchair users would prefer ramps everywhere, or a wheelchair capable of going up stairs[1]?

As mentioned[2] by your sibling, accessibility advocates and ADA regulations push for "Full & Equal Enjoyment". That doesn't sound like being forced to use ramps to me.

[0]: https://github.com/AccessKit/accesskit

[1]: https://youtu.be/hxf-fIubkMs?si=Cya66U7KQBpvLU-R

[2]: https://www.accessibility.works/blog/alternate-separate-acce...

> Why should devs have to implement a separate API for 4+ different OSes?

Because they don’t want to release software that targets a lowest common denominator. If you don’t care about this stuff, just use Electron or some other library that lets you move fast and make mediocre software that feels foreign on every OS.

Each operating system is different in lots of different ways and if you want to make the best app on each platform, you embrace that. For example, many apps have some number of settings. On Windows you will probably put those in a Preferences or Settings dialog in the app. On iOS, some of those belong in the settings panel. Great apps aren’t going to pave over these differences.

Same goes for accessibility APIs. There’s all kinds of assistive devices (both hardware and software) already in widespread use. They have different expectations on every platform. Follow the conventions laid out by each platform maker and your software should just work. It’s the same as handling keyboard and mouse support. Each OS has different APIs.

Does that mean people who write cross-platform libraries have to do more work? Well yes it does, but then creating an abstraction over each platform is what they set out to do in the first place. It’s an important part of the job.

You're making my point for me, maybe better than I did. The type of OS integration you're talking about isn't implemented by libraries like Brisk anyway. They use their own custom visual style. These libraries fill a specific niche.