Hacker News
points by earthnail 2 days ago | 0 comments
They use GPUI. Says so on X.

" (And it's not Tauri, it's GPUI, so good guess everyone.) "

[–] sphars 2 days ago
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"
[–] 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.
[–] 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/

[–] drcongo 2 days ago
I've built a couple of desktop apps for myself recently using GPUI-kit [0] and it's been fantastic. I'm not a Rust programmer, so leaned heavily on Opus 5.5 for both, but the end result is two apps that are considerably faster than anything I could pay money for, and tailored to exactly what I need.

[0] https://gpui-kit.com

[–] thisismyanon2 2 days ago
I use gpui-kit because it's far and away the prettiest toolkit for Rust and because the underlying gpui crate provides the nicest abstractions over state and async.

But gpui-kit is slop for clankers. The name change from gpui-component to gpui-kit was messy with lots of dangling links remaining for weeks. What little documentation exists is impenetrable Claude speak or buried in "skills.md" files. The APIs are typically incomplete in a way that a human would've never signed off on. e.g. there's no way to enumerate the backing contents of combo boxes, there are multiple tooltip APIs (but even then only buttons can get tooltips). Mac support is clearly just a checkmark that no human has ever looked at (e.g. the way in which menus are mangled). The examples are unhelpful here because, well, see the second point.

Not a bad showing for what's mostly a one man show. But that raises the second problem. Zed's largely distanced themselves from the open source version of gpui and gpui-kit has one human developer. It's a rickety foundation for a commercial app (which is likely why Discord appears to have forked gpui).

[–] drcongo 2 days ago
Thanks for the extra context, definitely useful to know.