Hacker News
points by sphars 2 days ago | 0 comments
Which I believe GPUI is the same framework that Zed (the editor)[0] is using

[0]: http://zed.dev/

[–] ethin 2 days ago
The fact they're using gpui is... Bad. Is someone trying to make it integrate with native accessibility frameworks? If not (and if they force the native app on us) this transition is going to lock out a ton of people who use assistive technologies.
[–] tensor 2 days ago
Yes, see: https://github.com/longbridge/gpui-kit. I've been following these rust UI toolkits and things like accessibility have consistently been missing. This is the first time I've seen a UI library that appears complete enough to build a real product with.
[–] ethin 2 days ago
Yeah, that's what worries me. Pretty much every Rust UI library I've seen which isn't wxdragon/Relm/GTK lacks accessibility. And most of them don't even have the primitives for it (given that most of them are abandoned).
[–] ecshafer 2 days ago
This response doesn't make sense?

GP you asked if there is accessibility P response: yes, here You then respond that worries you and dismiss the proof?

[–] ethin 2 days ago
> This response doesn't make sense?

Apologies. I was noting that the lack of accessibility worried me (well, and weird accessibility breakage too).

[–] rat9988 2 days ago
You are dismissing again the answer you are getting. Why do you think it is lacking accessibility despite using a framework claiming " GPUI Kit ships 75+ documented components and primitives, WebAssembly support, AccessKit accessibility"
[–] d1sxeyes 2 days ago
To be clear, GPUI Kit is not the same as GPUI. I am not sure if Discord is using GPUI Kit, but accessibility natively is possible with either.

It's reasonable to be concerned that Discord may not have focused on accessibility while rewriting.

It's less reasonable to be concerned that it may be impossible to write accessible apps using GPUI, as that is now possible (https://github.com/zed-industries/zed/blob/main/crates/gpui/...) although this is a fairly recent addition.

It's also less reasonable to assume that an app made with GPUI Kit will automatically be accessible. You still need to put effort into it.

[–] ethin 1 day ago
I'm not dismissing it, just uncertain how good it is. Quality over quantity and all that. You can have 75 or 100 or 200 UI components and some can be perfectly accessible while others might not be even things accesskit supports right now. Or Accesskit may only partially support a widget. As I've said downthread, I'm hoping that Discord using a UI toolkit like this will cause upstream effects with respect to Accesskit coverage, so we'll have to see when they start migrating people over to it.
[–] marcprux 2 days ago
This is exactly why I started working on Day (https://daybrite.dev) as a successor to Skip (https://skip.dev). It uses platform-native toolkits everywhere, and so accessibility comes for free.

I haven't exactly "launched" it yet, but I'm already shipping apps through the App/Play Stores. See https://daybrite.dev/showcase/ for the 5-minute tour.

[–] tommica 2 days ago
Oh that looks fricking neat! Might wanna port my little diff-tool to this for funsies!
[–] nextaccountic 2 days ago
It was real world use by COSMIC that motivated Iced to add a11y support in the first place

So Discord using gpui could mean it may get the needed features

[–] Klonoar 1 day ago
COSMIC runs a fork of iced and things don’t make it back upstream nearly fast enough due to the one-maintainer-bus-factor.

You can’t exactly lump them together.

[–] tensor 2 days ago
I don't understand. You can do accessibility with GPUI today. I linked a repo that shows how.
[–] ethin 2 days ago
Yes, and this is good progress (my comment downthread was before I just looked). According to it it uses accesskit, which is quite good already but still in development so accessibility would not be as good as using UIA directly. I am hopeful though that accesskit (which is also used in Godot) will keep getting better and these gaps can be closed.
[–] tensor 2 days ago
Yeah, and big products like discord using them should help push that along.
[–] selfmodruntime 1 day ago
Turns out the browser (electron) wasn‘t always horrible after all.
[–] the__alchemist 2 days ago
This is one angle. I do not see it as a deal breaker in the way you phrase it. I suppose we all have our own. If everyone's had to be satisfied, we'd have no software!

I think in the specific case of Discord, I.e. from a big company, I agree they should handle this properly. As a broader standard, I am not as concerned.

[–] ethin 2 days ago
This is a dealbreaker for me even if I didn't want it to be. If your application does not either interact with a11y frameworks (UIA, AT-SPI, NSAccessibility, ...) or does not implement an equivalent that communicates with my screen reader, I literally cannot use your application. I could OCR your application, or use AI and have it use your app for me via screenshots, but neither are even remotely comparable to using the native platform accessibility frameworks.
[–] veverkap 2 days ago
Could someone use AI to make the GPUI kit become accessible? You (or someone else) mentioned that it doesn't even have the primitives so is it a non starter?
[–] ethin 2 days ago
No, I mentioned that most rust UI toolkits lack even the primitives. The primitives for even basic accessibility, without accessibility frameworks, would be things like focus events, carrot navigation, navigation in containers such as list/combo boxes, line/paragraph handling in multi-line edit boxes and the like. Adding native accessibility forces you to do a lot of this but just in a different way than routing text directly to a screen reader.

As for me doing it? According to prior comments in this thread it's already done, although I haven't tested it so I don't know how complete it is. Adding UIA support to a framework is different from making that support good (screen readers can be very picky). As an example, say you have a label of an edit box. If you position the label just right within it's parent container a screen reader will pick it up automatically and just announce it as you focus the edit box. But if you don't, all you'll hear is "edit <contents|blank>". There are ways around this (e.g., you can override label detection) but the "ideal" state is that the screen reader picks up that stuff automatically and you just give it the bounds of the various controls and UI elements.

[–] Forgeties79 2 days ago
It’s potentially a dealbreaker for millions of people whether they want it to be or not unfortunately. For them accessibility is not optional or can otherwise be taken as a “wait and see” issue.
[–] selfmodruntime 1 day ago
Neatly phrased comment, where „fuck the blind“ would have sufficed.
[–] anthony-eid 2 days ago
gpui does have a11y support for accessibility, Zed just hasn't piped it through yet. I'm also pretty sure Discord is using their own fork of gpui with patches to add any missing functionality they needed
[–] ethin 2 days ago
I really hope Zed gets in the support, I'm curious to try it given all the good things said about it (particularly on HN :))
[–] davkan 2 days ago
Could maybe use the browser client as a workaround.
[–] lsaferite 2 days ago
Considering the fact that the gpui code only exists as a crate under the zed repo, I'd say you are correct.
[–] porphyra 2 days ago
weird how the website doesn't have a single screenshot on it, considering it's for a GRAPHICAL user interface. You'd think the examples page would have some screenshots, but in fact it's just example code snippets with no indication of what the code would render as.

[1] https://gpui.rs/

[2] https://gpui.rs/examples/