12 ms·
This is an impressive feat of engineering. But unfortunately, the resulting UI is completely inaccessible to blind users with screen readers, and probably users
by mwcampbell 8y ago
This is an impressive feat of engineering. But unfortunately, the resulting UI is completely inaccessible to blind users with screen readers, and probably users with some other disabilities as well.
This will not be easy to fix. AFAIK, if you're using Canvas or WebGL, the only way to make the application accessible is to construct a parallel accessible HTML tree that's completely covered by the canvas via CSS. Note: Don't use "display: none" to hide the accessible HTML tree, because then screen readers will ignore it.
I'm reluctant to rain on your parade, because as I said, this is an impressive piece of engineering. But for the best accessibility and performance, I believe it's better to accept that the Web platform won, and target it directly with a UI that's native to that platform.
- jeffreportmill1 8y agoYou're right - it would require a bit of work, however, it wouldn't be that bad for a shared UI framework. I also think this kind of thing will be more common as WebAssembly allows other languages to move to the browser.
- mwcampbell 8y agoDid you consider an SWT-like approach, where the toolkit uses each platform's native widgets? Porting SWT to the Web platform might even be feasible.
- jeffreportmill1 8y agoI have gone down this road before - but I think this is why many people saw Java as "Write Once, Debug Everywhere". It's just hard to write an abstraction that fronts for so much different native code on different platforms. Something is always going to break. Whereas if you run the same code everywhere, it might actually run everywhere.
- mwcampbell 8y agoSo, I guess you have to either take on the extra work of debugging multiple UI implementations, or take on the extra work of making your own toolkit accessible. Personally, I would have chosen the former.
- LoSboccacc 8y agohttps://www.eclipse.org/rap/ https://www.eclipse.org/rap/ (and others) doesn't work that well because the event model between web and desktop is radically different. if you don't have complex interactions or expectation about your widgets it kinda works.
- anoncake 8y ago> Note: Don't use "display: none" to hide the accessible HTML tree, because then screen readers will ignore it. That sounds like a use case for @media queries
- mwcampbell 8y agoThat opens a whole other can of worms. Some blind people don't want a website or web application to be able to detect that they're running a screen reader, and by extension, that they're blind. [1] I'm not sure where I stand on that issue. [1]: https://news.ycombinator.com/item?id=19547239 https://news.ycombinator.com/item?id=19547239
- mastazi 8y agoMedia queries are instructions that the client can use, unlike other methods like user-agent there is no info being sent over to the site. Of course a malicious page could implement js code to try and understand what bersion of the page the client is actually rendering, but it would be quite easy for the client to circumvent that.
- ago 8y agoMedia queries can leak info to the server easily without JavaScript: https://matt.traudt.xyz/p/YF4ciVY6.html https://matt.traudt.xyz/p/YF4ciVY6.html
- omega3 8y agoThis is a page layout and report designer, I doubt that the blind users are the target audience.
- deleted 8y ago[deleted]
- mwcampbell 8y agoThat's true if the application is entirely about visual layout, e.g. positioning and font sizes. But a blind user should still have an accessible way of controlling the content and structure of a report. And you might be surprised at how much information about layout and formatting is accessible in word processors. Furthermore, now that this toolkit is available, companies will use it for applications that are required for job functions that ought to be perfectly accessible to blind people. An inaccessible application can lead to a blind person losing their job. Also, I mentioned other disabilities. A person that can see but has a severe mobility impairment should still be able to use this app.
- cglace 8y agoShould estwing consider consider people without arms while designing their hammers? I'm not being dismissive I'm just wondering how far your beliefs go.
- jimbokun 8y ago"That's true if the application is entirely about visual layout, e.g. positioning and font sizes." That's almost exactly what this tool is for.
- geofft 8y agoThe title of this submission is "Show HN: 300k lines of Java UI code running native in browser at desktop speed," not "Show HN: page layout and report designer." The criticism is that this particular method of making Java UI code run in the browser, which is being shown to HN because it's presumably interesting to other people with large amounts of Java code as part of different applications, is inaccessible - not that the page layout and report designer is inaccessible.
- mwcampbell 8y agoThat last paragraph wasn't entirely constructive. I'm sorry about that. I realize there are lots of existing applications that can't be rewritten to directly target the Web platform. But I still believe that new ones should.
- stefan_ 8y agoTargeting the "web platform" does not by itself magically make an application accessible. It is vastly easier to make a native iOS or Android app accessible given the well defined rich widgets and the absence of 20 years of HTML and CSS evolution.
- bufferoverflow 8y agoNot everything has to be accessible. 100% blindness isn't that common. And even if it was, there's nothing wrong with making apps for people with good vision.
- mwcampbell 8y agoA blind person can lose their job because an application that's required for the job is inaccessible, even though the job function ought to be perfectly accessible (i.e. isn't inherently visual). That happened to an acquaintance of mine. May it never happen again.
- fastball 8y agoHow is that the application creator's fault? That's a problem with the employer, not the application. Applications do not need to cater to every edge case of humanity.
- mwcampbell 8y agoYes, the employer is at fault in that case. But the application creator is as well, because they erected the barrier of an inaccessible app.
- vinceguidry 8y agoI share your sentiments. Anybody building a tool that could conceivably be used for work purposes has a moral impetus to treat accessibility as a first-class citizen. The standards are there, the profit motive should be there and thus the resources should be there. The only reason not to is greed.
- LoSboccacc 8y ago> The only reason not to is greed while accessibility is important this extremisation is a little rich under a post of a literally free tool.
- fsloth 8y agoUm, you can't make paintings accessible to blind people nor can you make downhill skiing accessible for four-limb paraplegigs. There is a public domain within which most disabilities should be catered for but you can't expect that every non-private thing is made public so it's usable by all. Just because something is 'in the web' doesn't mean it's a public service, access to which is a basic right. It's good to be reminded to take into account disabilities, of course, since those are not obvious to people who do not have disabled people nearby.
- bzbarsky 8y ago"can't" is a pretty strong term. Up until recently, people would have said that you can't make Olympic sprinting accessible to someone with no feet, but it turns out in fact you can, with sufficient application of technology. So the real question is always whether the technology to make something accessible exists and whether it can be deployed reasonably in the particular instance involved.
- atomicUpdate 8y agoThey didn't change the race though, they changed the person running it by giving them pseudo-feet. To continue your analogy, in order for a bling person to use this we just need to give them pseudo-eyes.
- bzbarsky 8y agoThat's a worthwhile goal in itself, sure. But I think you're reading too much into what I said. I never claimed the two situations were identical or analogous, just that "can't" is something that needs to be periodically re-evaluated. But if you do want to press on with sprinting events, note that they have been using start signals with both an audible and a visible component for a while, to accommodate people who may not be able to perceive one or the other. Back until we had electronically-triggered lights, you "couldn't" have a deaf competitor compete, modulo smoke from the starting gun. Now you can.
- tomcam 8y ago
- dosy 8y agoIt's also inaccessible to non-English speakers. A11Y is not the bottom line to judge everything by. That dilutes it's importance as a niche. Judging by a11y is a power that should be used responsibly, not as a last resort to just find something critical to say. It's inaccessible to non English speakers and that's not a problem because it just doesn't matter enough. Same thing with disability. There's just not enough disabled people to justify critiquing everything that's not usable with screen readers. The world is not accessible to every group within it, and that's okay, that doesn't mean everything that isn't able to be used by some group is somehow bad or deficient. To discriminate against apps that don't have certain abilities is just the same bias as discriminating against people with different abilities. Be more tolerant of apps that are serving their special niches and nothing more.
- mwcampbell 8y agoI'm not calling this out just to be critical. I call this out because I don't want people to be blocked from doing their jobs productively, or at all, due to an accessibility problem that could have been prevented.
- giornogiovanna 8y agoStill, by your logic, every app must be translated into every language. It's okay to exclude people, especially when you're small and don't have the resources to cater for the needs of every single person.
- anoncake 8y agoPeople can learn foreign languages. Disabled people cant stop being disabled.
- HeWhoLurksLate 8y agoThe impossible just takes longer. And money. https://www.mayo.edu/research/departments-divisions/department-neurology/programs/neuro-regeneration-spinal-cord-injury https://www.mayo.edu/research/departments-divisions/departme...
- ndarilek 8y agoAs a blind software developer, I'm kind of sad to see how much Matt is getting pissed on in this thread. It really didn't seem like he was all that inflamatory, either. He just pointed out the accessibility challenges that I myself face every single day because, what, blindness isn't all that common? Great, so either kill me off[1] or give me enough UBI to not need a job, because there's really no other path for me and my uncommon condition other than, it seems, to constantly assert my existence. Should we make hammers accessible to the disarmed? Ugh, should I have to waste any more of my time because someone on the internet put up yet another straw man for me to knock down? Look, I'd get it if his initial message was like mine, and I fully expect and don't care that I'll get downvoted for this. And to be clear, this comment is more about the intolerance and dismissiveness I've seen in the replies of what appeared to be a fairly constructive piece of criticism of someone who does accessibility work professionally and gave out free advice. Hell, how often does a Show HN get pissed on because the design looks outdated, and that's just taken as par for the course? People criticized the Thoughter design a few days ago (I don't recall how it was spelled and don't want to look it up) and no one said "Damn, the guy made a product and all you can do is complain about how it looks?" Yet someone voices accessibility concerns and look what happens. I myself have held off on posting some Show HNs because I can't make a website look good. But someone makes a constructive comment about a thing not being accessible along with tips on what might fix it and it's like "OMG get teh blinds outa here!" And now we know why I don't even seek out tech work anymore. Queue up the "maybe you'd have better luck if you behaved better" comments. :) And to be more constructive, I am a bit worried about the "render everything to a canvas and call it progress" trends I've seen with Web Assembly lately. It isn't just this, but the projects to compile QT and other native GUIs to wasm. Do that and you lose access to the native OS accessibility layers these tools use. I've wondered if there might be a way to create parallel HTML versions of these same widgets so your GTK button might compile to a <button/> with GTK-like styling. But I don't know anyone working in that direction, and I'm not smart enough to pull it off myself. I'm just worried that one day we'll have a pile of thin clients all running in their own canvases. My girlfriend's law firm uses timekeeping software written in the 90s with a web interface. I imagine it's a GUI app running on some basement server with a VNC client in front of it. That's an outlyer, but wasm makes it likely that it won't be, and Matt's concerns as an accessibility professional are completely on-point. 1. To be clear, not a cry for help or anything, but it sort of blows my mind that on one hand people dismiss disabilities because they're not that common. On the other, a large subset of society expects us to try harder to compensate for that apathy. So you either do, and become exceptional, or you just give up to some degree or other and accept that you'll likely never have the nice salary and such. On the gripping hand, most of you are likely to have one of these "uncommon" disabilities when you age. Hope you enjoy whatever you do while you can do it. It's going to be fun learning how to keep coding in your 70s when half the tools you took for granted aren't accessible to the screen reader you use because your glasses no longer cut it. :) I don't expect folks to bow and scrape when a thing isn't accessible, but to shit on someone for politely pointing that out is quite an unfortunate reaction.
- dyarosla 8y ago> I believe it's better to accept that the Web platform won The "Web platform" is not a single thing. It is a bunch of things that are constantly evolving, that are also implemented differently by different browser vendors that have their own issues. Just because the web purports to have a (sometimes) working UI that is accessible to some percentage of users on some percentage of devices doesn't mean that we should stop there and not experiment anymore in other directions (even if those new directions could, initially, not support all a11y functionality that 'the Web' already provides, for screen readers or what else have you). There is no "the Web won, accept it"- many things are terribly broken, before even taking a11y into account. Just note how many dysfunctional UI paradigms exist that don't support what we call 'responsive web design', often from the biggest companies in the world! A11y isn't anywhere close to a solved problem on the Web any more than responsive layout is -> it should not be the target specification to work towards just because. As a final thought experiment: what if we are going about a11y all wrong? What if screen readers and tree hierarchies of components aren't the right way to approach building these things and instead the better solution is to completely do away with that approach and instead make new screen "readers" that use AI to better visually determine elements on screens after the fact. AI is definitely at a point where it can classify buttons from text and images, as well as read out text in several kinds of fonts. If this becomes the future, it'll render all of our current web 'standards' to look like an unnecessary hassle of working with the more disingenuous and restricted (in the sense of, you can only use such and such component in such and such way) methods of today. What I'm saying is, encourage people to experiment with new UIs that don't yet conform to standards. By all means, mention that you wonder about a11y and ask what the plan might be going forward. But don't dismiss these experiments too early cause they're not built in the "right way".
- HeWhoLurksLate 8y ago> > I believe it's better to accept that the Web platform won > The "Web platform" is not a single thing. It is a bunch of things that are constantly evolving, that are also implemented differently by different browser vendors that have their own issues. Maybe The Web, as a platform won? EDIT: Formatting
- maimeowmeow 8y agoWhy does it matter, blind people cant see.
- Wowfunhappy 8y agoWould a traditional desktop java application have been more accessible?
- Arnavion 8y agoGoogle suggests that users can enable a "Java Access Bridge" (ships with JRE but disabled by default) that enables the Windows Accessibility API to work with Swing applications.
- vijaybritto 8y agoHonestly the replies here are the most meta discussions I have ever seen. So toxic and rude!