Folks, here's an NVDA add-on dev question (wxPython / accessibility). Please kindly boost for visibility.
I’m building an NVDA add-on with a lookup dialog that shows dictionary results. I tried embedding HTML inside the dialog (wxPython wx.html.HtmlWindow / wx.html2.WebView). NVDA often announces only “HTML window”, doesn’t read the content, and browse-mode features like NVDA+Space and single-letter navigation (e.g., H / Shift+H) don’t work reliably. Is there any recommended way to keep HTML content inside the same dialog (not opening a separate browseable message/window) while still making it accessible to NVDA—i.e., content is readable and (ideally) supports browse-mode style navigation? Any patterns, APIs, or known working approaches would be appreciated.
@NVAccess
This entry was edited (4 hours ago)

I think the talk Simon (@S1m) and I gave on #UnifiedPush at #FOSDEM turned out very well. If you have 30 minutes and want to learn how push notifications in general and UnifiedPush in particular work, check out the recording.

gultsch.video/w/gRGZqKKvNBvvMe…


UnifiedPush - Push notifications. Decentralized and Open Source (FOSDEM26)


To understand how we can replace Google push notifications (FCM) with something open source and decentralized, we need to understand how they work and why they are needed in the first place. This talk explains the mechanics of push notifications and why, despite their potentially bad reputation, they are a more elegant solution than having every app maintain its own persistent server connection.

While open-source tools like microG can remove proprietary Google software from your Android phone, the actual notifications are still sent via Google's servers (Firebase Cloud Messaging).

UnifiedPush is a framework that allows push notifications to be delivered in a decentralized manner or through self-hosted servers. Numerous open-source Android apps already support UnifiedPush, including Tusky, Ltt.rs, Fedilab, DAVx⁵, Fennec, Element, and many more.

The presentation ends with a short demo on how to use UnifiedPush on Android.

Talk given at FOSDEM 2026 fosdem.org/2026/schedule/event…


Bubu reshared this.

Well, it looks like there really isn’t a good way to present HTML content (not just plain text) inside an NVDA dialog. At least, if there is one, I haven’t seen anyone actually do it. Until I can find a proper solution, I’m reluctantly displaying the HTML content outside the dialog box. It’s far from ideal. If anyone knows a better approach, I’d really appreciate hearing about it.
@NVAccess

up at 2 AM discussing more implementation details and patterns with Claude, how we will structure the new voice profile mixing in the frontend rather than burdening the Python driver, ETC. Such is life. Some people really think AI coding is as easy as asking it to write it out, and maybe it can be for some context, but darn it if I don't break down how I expect the API and the implementation to exacting detail, it's going to muddle things up. I know enough C++ to get around, I know enough Python to get around. So I can tell it how to make the contracts and callback's shapes, ETC, how to rewrite what and where. Then I read the resulting work. At least these days it feels less like holding the hands of a junior engineer as much as maybe nearly senior-level one, so that does feel better. It does need probing to check certain lines or functions when it thinks you haven't done something you already have, but otherwise, we've come so far from 2020, it's astonishing
in reply to Andre Louis

@FreakyFwoof LOL! I've still seen GPT write Python in the middle of HTML code! Like, the thinking will suddenly turn to Python and it starts to insert functions in the middle of the darn HTML like nothing, no thought. Happeneed last week with me, I still laughed at that as it's been there since the early days. I'm almost thinking memory and history context pulls it in Python because it knows I've been working on that type of code, but then throwing an HTML thing at it still tilts the tuning to Python. Best educated guess. So I'm not surprised about returning the same file like that either, lol. Some things really never change :D
in reply to Tamas G

for all that having been said though, I am the happiest with this latest addon I've been. It took off in a way I never expected. People able to share music clips the same way sighted people share images and screenshots, just by copy/pasting the clipboard, so for all my annoyance, anger and hairr-pulling, I regret nothing.
You working on synth engines is much more important, useful and practical though, so you take the win haha
in reply to Bri🥰

@Bri @FreakyFwoof lol, I bet the output from something like that is great though, a bunch of not found commands, then it's like, "wait but it's listed in the build system! What am I doing wrong!" LOL. I see it a lot at work where we have a monorepo that holds both Android and iOS code, and if I'm careless with my prompt on which part of the repo to investigate it starts to dig into the wrong parts. Haha. Then it's like, "but the user wanted info on Android, this is IOS...." and I laugh outloud each time.
in reply to Andre Louis

@FreakyFwoof OMG still. It's manual grind work that really gets removed, even if it's just a profile swapper where I'm not the one renaming the JSONS or calling fan control with the argument to load another config. I don't mind editing the curves, although having the sample ones is nice. It's ironic with that app that you can go through the hardware detection wizard just fine, then when you're done, it turns into a monster soup of unlabeled mess, and choosing one of the list items for the categories can only be done with object nav reliably because it auto-switches to the "about" tab the moment you focus it. Crap like that is hard to code around though honestly, so even a small try counts.

A big and warm thank you hug to all the friends I met and talked to in Brussels this time. Two packed days of events before #FOSDEM including an awesome prize ceremony, then two intense days at ULB where I must have talked to more than a hundred persons. All the positivity, the appreciation, the smiles, the ideas, the energy.

I got to end-keynote the thing and then top it off with more drinks and countless friends - again.

I'm drained now, but in a good way. I'll be back next year.

Rant about internet upload speeds in general.

Sensitive content

in reply to Andre Louis

Rant about internet upload speeds in general.

Sensitive content