Tak keep ☕, bando.
hokej.cz/sestrih-sest-ran-pro-…
SESTŘIH: Šest ran pro Kanadu! Připomeňte si strhující semifinále | Hokej.cz - web českého hokeje
(ST. PAUL, od našeho zpravodaje) Je nám jasné, že tenhle sestřih si nepustíte jenom jednou. Ale je pondělí, tak proč si ho neudělat pěkné.Hokej.cz
TAccess is a custom Telegram client built with Python and wxPython, specifically designed to be fully accessible for screen reader users (NVDA, JAWS, Narrator) on Windows.
github.com/mlapps88/t-access-a…
Release T-Access 1.0 · mlapps88/t-access-accessible-telegram-client
TAccess v1.0.0 - First Public Release We are proud to present the first stable release of TAccess, an accessible Telegram client designed from the ground up for efficiency and ease of use with scre...GitHub
reshared this
The text mode lie: why modern TUIs are a nightmare for accessibility
The mythical, it's text, so it's accessible
There is a persistent misconception among sighted developers: if an application runs in a terminal, it is inherently accessible. The logic assumes that because there are no graphics, no complex DOM, and no WebGL canvases, the content is just raw ASCII text that a screen reader can easily parse.
The reality is different. Most modern Text User Interfaces (TUIs) are often more hostile to accessibility than poorly coded graphical interfaces. The very tools designed to improve the Developer Experience (DX) in the terminal—frameworks like Ink (JS/React), Bubble Tea (Go), or tcell—are actively destroying the experience for blind users.
The Architectural Flaw: Stream vs. Grid
To understand the failure, we must distinguish between two distinct concepts often conflated under “terminal apps”: the CLI (Command Line Interface) and the TUI.
- The CLI (The Stream): This operates on a standard input/output model (
stdin/stdout). You type a command, the system appends the result below, and the cursor moves down. This is linear and chronological. For a screen reader, specifically kernel-level readers like Speakup, this is ideal. - The TUI (The Grid): This treats the terminal window not as a stream of text, but as a 2D grid of pixels, where every character cell is a pixel. It abandons the temporal flow for a spatial layout.
Case Study: The gemini-cli Madness
Let's look at a concrete example: gemini-cli, a tool written in Node.js using the Ink framework. On the surface, it looks like a simple chat interface. But underneath, Ink is trying to reconcile a React component tree into a terminal grid.
When you use this tool with Speakup (Linux) or NVDA (Windows), the application doesn't just fail; it actively spams you.
Because the framework treats the screen as a reactive canvas, every update triggers a redraw. When the AI is “thinking,” the tool updates a timer or a spinner. To do this, it moves the hardware cursor to the timer location, writes the new time, and moves it back.
For a sighted user, this happens instantly. For a screen reader user, this is what you hear:“Responding... Time elapsed 1s... Responding... Time elapsed 2s... [Fragment of chat history]... Responding...”
It drives the screen reader mad. The cursor is teleporting all over the screen to update status indicators, spinners, and history. Speakup tries to read whatever is under the cursor at that exact millisecond. You end up hearing random bits of conversation mixed with timer updates, making it impossible to focus on what you are actually typing.
Worse, lets pretend that you've somehow managed well with speakup so far, but that you want to do some work with nvda. Maybe paste an error you're getting on windows. So you open your terminal, ssh into your linux box, attach to your screen session and paste your text.
The result is an immediate crash of the screen reader (NVDA) or massive system instability. Why? Every time you type a character or paste text, the application triggers a state change. The framework decides it needs to re-render the interface. Because the conversation history is part of that state, the application attempts to redraw or re-calculate the layout for thousands of lines of text instantly. The more messages you have in a conversation, the more this will happen. And no, you can't just avoid this by using insert+5, the key combo supposed to avoid announcing dynamic change of content.
The Lag Loop
Furthermore, frameworks like Ink running on single-threaded environments (like Node.js) suffer from massive performance degradation when the history grows. If you paste a large block of text, the system has to calculate the diff for thousands of lines.
This causes input lag. You press a key, and you wait. You can wait up to 10 seconds for a single character to echo back. The system is too busy calculating how to redraw the screen to actually process your input.
Why The “Old Guard” Works (nano, vim, menuconfig)
Sighted developers often ask: “If TUIs are bad, why do you use nano, vim, or menuconfig?”
The answer is not that these tools handle the cursor perfectly by default. The answer is that they allow you to hide the cursor entirely.
1. Hiding the Cursor (nano, vim)
In tools like nano or vim, usability depends on turning off features that track cursor position. If you run nano with options that show the cursor position (like --constantshow), or if you use vim without specific configuration, the experience is broken.
When the cursor is visible and tracking is active, Speakup prioritizes the cursor's location update over the character echo. Instead of hearing the letter “a” when you type it, you hear “Column 2”. You type “b”, and you hear “Column 3”.
These older tools succeed because they allow you to disable this noise. You can configure them to suppress the visual cursor or status bar updates, forcing the screen reader to rely on the character input stream rather than the noisy coordinate updates. Modern frameworks rarely offer a “no-cursor” or “headless” mode; they assume the visual cursor is essential.
2. Single Column Focus (menuconfig)
Tools like the Linux kernel's menuconfig work because they enforce a strict, single-column focus. Even though there are borders and titles, the active area is a vertical list. The cursor stays pinned to that list. It doesn't jump to the bottom right to update a clock, then to the top left to update a title. The spatial complexity is kept low enough that the screen reader never gets “lost.”
3. The Lost Art of Scrolling Regions (Irssi)
Irssi is the gold standard for accessible chat, but not because of luck. Irssi was built over 20 years with a custom rendering engine that utilizes VT100 Scrolling Regions.
When a new message arrives in Irssi: 1. It tells the terminal driver: “Define a scrolling region from line 1 to 23.”2. It sends a command: “Scroll up.” The terminal moves the bits up. 3. It draws the new text at the bottom of that region.
Crucially, it handles this in a way that minimizes interference with the input line. It relies on the terminal's hardware capabilities rather than rewriting every character on the screen manually. Modern frameworks ignore these hardware features in favor of “diffing” the screen state and rewriting characters, which is computationally heavier and hostile to accessibility.
The “Stale Bot” excuse: A Case Study in Neglect
Google and the maintainers of gemini-cli pretend to care about accessibility. “Pretend” is the operative word here. If you look at the repository, critical accessibility regressions like Issue #3435 and Issue #11305 have been left to rot. There is no discussion, no roadmap, and no fix. Even worse is the fate of Issue #1553, which was supposed to track these accessibility failures. It didn't get solved; it got silenced. It was closed automatically by a bot with this generic dismissal: > Hello! As part of our effort to keep our backlog manageable and focus on the most active issues, we are tidying up older reports. It looks like this > issue hasn't been active for a while, so we are closing it for now.”
This is unacceptable. Closing an accessibility report because the maintainers haven't touched it in months is not “tidying up”; it is hiding evidence. It effectively says that if a bug is ignored long enough, it ceases to exist. It boosts the project's “Closed Issues” metric while leaving the actual software unusable for blind users.
Conclusion
If you are building for the terminal and care about accessibility, stop using declarative UI frameworks that treat the terminal like a canvas.
The “modern” TUI stack has optimized for the developer's ability to write React-like code at the expense of the machine's ability to render text efficiently.
If you cannot guarantee that your application allows the user to hide the cursor, or if you rely on aggressive redrawing to show spinners and timers, you are building an inaccessible tool.
For the blind user, a dumb, linear CLI stream is infinitely superior to a “smart” TUI that lags, spams, and scatters the cursor across the screen.
reshared this
I unfortunately have not found any myself. The second your ssh connection lags even a tiny little bit, things kind of fall apart.
And cursor tracking seems hardcore in wsl for some reason? It's very weird. Or it's probably nvda not liking the windows terminal all that much... Let's be honest there too, nvda rather sucks for the terminal, as unfortunate as it is.
@archos "Vazeny pa chrchly chrchly pane! Helejte, skyt, sem se vozvozral. A skyt! naboural skyt auto! Vam auto naboural. Ja. Skyt. Sorry. Robin Bedrunka. "
;)
Got an external SSD to replace a rotational USB2 slow one, that holds my photo collection of 20 years.
So of course I'm trusting Midnight Commander to copy the files over.
@purpleidea this is not for backups, but (gulp) for the main photo storage. I have backups in a spinning HDD.
What should I research about SSDs without power? I don't mind keeping this thing plugged in, but still.
Today I saw someone wearing a hat saying "FUCK LEGAULT" in bright yellow letters on black.
@feld you mentioned CCC FreeBSD jail escape recently.
Someone else asks if mkjail will get pkgbase support:
bsky.app/profile/maackintosh.b…
^ we got some work to do, but first, I'd have to be trying pkgbase.
Next item on the agenda: how well does mkjail work with securelevel?
OK, that's enough deep thoughts this early on a Sunday morning.
Today being World #Braille Day, I acknowledge that to most, it's a series of random-seeming dots on elevators or ATM's. To me, and other #blind people, it's the gateway to literacy, education, and success.
My parents made me learn it and print simultaneously, suspecting my usable vision wouldn't last forever. They were right.
But thanks to Braille, I'm functionally literte, and I attribute much of my life's personal and professional success to this dotted code.
reshared this
Whack a Braille!
Whack a Braille is a braille-first arcade game where fast fingers, sharp ears, and solid braille skills win tickets and prizes.marconius.com
reshared this
What the EU fails to achieve, Brazil, Chile, Colombia, Mexico, Spain and Uruguay are succeeding in doing.
This evening, they issued a statement condemning the aggression against #Venezuela as contrary to international law and warning against ‘leading’ the country in order to exploit its resources.
Full text:
Statement from Spain, Brazil, Chile, Colombia, Mexico and Uruguay regarding the events in Venezuela
Presidency of the Government - 4.1.2026
The Governments of Spain, Brazil, Chile, Colombia, Mexico and Uruguay, in light of the gravity of the events that have occurred in Venezuela and reaffirming their adherence to the principles enshrined in the Charter of the United Nations, jointly express the following positions:
1. We express our deep concern and rejection of the military actions carried out unilaterally on Venezuelan territory, which contravene fundamental principles of international law, particularly the prohibition of the use and threat of force, and respect for the sovereignty and territorial integrity of States, enshrined in the Charter of the United Nations. These actions constitute an extremely dangerous precedent for peace and regional security and endanger the civilian population.
2. We reiterate that the situation in Venezuela must be resolved exclusively through peaceful means, through dialogue, negotiation, and respect for the will of the Venezuelan people in all its expressions, without external interference and in accordance with international law. We reaffirm that only an inclusive political process, led by Venezuelans, can lead to a democratic, sustainable solution that respects human dignity.
3. We reaffirm the character of Latin America and the Caribbean as a zone of peace, built on mutual respect, the peaceful settlement of disputes, and non-intervention, and we call for regional unity, beyond political differences, in the face of any action that jeopardizes regional stability. Likewise, we urge the Secretary-General of the United Nations and the Member States of the relevant multilateral mechanisms to use their good offices to contribute to the de-escalation of tensions and the preservation of regional peace.
4. We express our concern regarding any attempt at government control, administration or external appropriation of natural or strategic resources, which is incompatible with international law and threatens the political, economic and social stability of the region.
The signatory countries:
Brazil,
Chile
, Colombia
, Spain
, Mexico
, Uruguay
Source: lamoncloa.gob.es/serviciosdepr…
Comunicado de España, Brasil, Chile, Colombia, México y Uruguay frente a los hechos ocurridos en Venezuela
domingo, 4 de enero de 2026. La Moncloa. 04/01/2026. Comunicado de España, Brasil, Chile, Colombia, México y Uruguay frente a los hechos ocurridos en Venezuela [Prensa/Actualidad/Presidencia del Gobierno]www.lamoncloa.gob.es
Today 4th January is World Braille Day
Braille is often thought of as being outdated & not used because there's technology instead, however, I personally know people who still use it.
They use tech, but there's cases where braille gives autonomy & confidence faster & easier than with tech.
Last year Spain made it mandatory for accessible labels on products, braille and/or QR codes, especially on products where it's needed for safety, integrity & quality of life.
the rise and fall of stackoverflow
the graph of posts per month is quite something
the decline over the last four years is almost a mirror of the rise 2008-2012
and they are now down to near zero
i made a flappy bird clone that uses your folding phone as the controller
Liebes #Fediverse,
Zum ersten #DiDay 2026 möchte ich zum Austausch über offene #Videokonferenz-Tools einladen!
🗓️ 04.01.2026
🕔 17:00–18:00 MEZ
📍meet.opentalk.eu/room/e05f049b…
Ich stelle einen #OpenTalk-Raum zur Verfügung und möchte damit gleichzeitig einen Stresstest machen (bis zu 200 Teilnehmer:innen gehen rein, daher teilt und boostet, so viel ihr könnt)! Ihr braucht nur einen Browser – und Zeit.
Happy Birthday to #InstantMessaging and #RealTimeCommunication with #XMPP!
Emerged from the #Jabber #community in 1999 and originally designed to provide an open and #decentralised alternative to #ICQ and #MSN, XMPP evolved to an independent alternative for todays #chat apps.
#rtc #whatsapp #signal
BlissLabs is coming to #FOSDEM 2026!
We’ll be in Brussels showcasing Bliss OS, Waydroid, SmartDock and more from our open-source ecosystem, alongside @IzzyOnDroid and our friends @shiftphone at booth UD2-02.
We’re excited to share what’s next for the BlissLabs ecosystem.
#Catima 2.41.3 is out
github.com/CatimaLoyalty/Andro…
This builds on the hotfix in 2.41.2 to also fix .pkpass files explicitly stating ISO-8859-1 as format.
It also forcibly sets the barcode format of all existing cards to ISO-8859-1 on upgrade. This used to be the only format supported in Catima, so this reverts any sudden barcode changes.
We may need another bugfix release to get this all right. If you understand UTF-8, *please* join in in github.com/CatimaLoyalty/Andro….
2.41(.1) breaks Deutschlandticket Aztec code
STR Scan your source pkpass/website with https://zügli.app/ to verify the D-Ticket works. Import pkpass file. Click save without changing the binary data shown there. Scan it from Catima with https...rugk (GitHub)
Those of you who use the #Deutschlandticket are likely affected in 2.41.0 - 2.41.2. And scanning a Deutschlandticket with your camera or from a PDF file (not using a .pkpass file) will likely not work correctly.
The current workaround for both cases is to manually set the "Barcode encoding" field in the card setting to "ISO-8859-1".
Not currently sure how to fix scanning Deutschlandtickets with the camera without breaking the issue 2.41.0 was meant to fix by adding barcode encoding support :(
I decided to just quickly release 2.41.4 and disable the automatic barcode encoding detection for now. Breaking Deutschlandticket is definitely one of the worst things that could have happened and I don't want people to get stranded in Germany.
github.com/CatimaLoyalty/Andro…
I've asked @IzzyOnDroid and linsui (from @fdroidorg) to get this release out more quickly if possible: github.com/CatimaLoyalty/Andro…
Coming soon to an app store near you.
#IzzyOnDroid #FDroid #GitHub #GooglePlay
2.41.4 · CatimaLoyalty Android · Discussion #2942
Disable automatic barcode encoding detection for now (breaks too many cards) This discussion was created from the release 2.41.4.GitHub
Yes, from 2.41.0 - 2.41.3 Deutschlandticket is fully unusable based on the information I have. This includes Deutschlandtickets added to Catima before 2.41.0
In 2.41.4 both pkpass and scanned with camera Deutschlandtickets should work again as they did in 2.40.X and existing tickets will be fixed on installing the update with no user intervention needed.
Edit: 2.41.3 should deal with the pkpass correctly already, but 2.41.4 will fix also non-pkpass
You are the best!!! Instead of going to bed, cause it's late and your day starts early, you take care of your Catima users and give us another update to fix the DE-Ticket issue! Chapeau! 🎩 👍
And now ... have a good night 😴 💤
Me asomo por quienes me habéis mencionado.
Primero, toda mi gratitud por vuestros mensajes y por el tiempo de preguntarse cómo lo estaba pasando.
En este momento estoy bien, dentro de la coyuntura que vive el país. Mi cercanía de zona militar y Fuerte Tiuna nos afectó de manera indirecta: un minuto antes del sobrevuelo se fue el servicio eléctrico. La interrupción nos dejó sin servicios básicos durante 31h.
En mi zona residencial se vive una calma singular. No hemos observado violencia. la información oficial que disponemos es la activación de un Estado de Conmoción Externa.
Hoy recibimos ayuda de mi compi de grado; mi núcleo lo constituye mi hermana y dos personas de la tercera edad con demencia que no pueden quedarse sin supervisión.
Somos docentes universitarias, nuestro salario mensual no supera los $10 (ya no tengo el empleo2), así pues, buscamos formas de resolver las necesidades más fundamentales y este amigo que es como mi hermano, nos ayudó para que mi hermana no saliera sola a las calles hoy.
Hay mucha desinformación y rumores, no voy a entrar en eso. Tampoco voy a hablar de política.
Mi resumen es que hemos vivido en casa 31 h muy difíciles; da igual cuanta narrativa use, no alcanzaréis a comprenderlo y estoy muy agotada para engancharme en explicaciones innecesarias. todavía tengo que evaluar (dependiendo de mis glucemias) si la insulina que pude comprar (gracias a la ayuda de amigos del extranjero) no se fastidió por la falla en la refrigeración.
Si os interesa mi experiencia, solo os puedo decir que no hay nada más duro que la incertidumbre y el miedo. En este momento hay que tener serenidad, paciencia y cautela. Evitar rumores y conclusiones precipitadas.
modulux
in reply to José Manuel Delicado • • •Nahir
in reply to modulux • • •modulux
in reply to Nahir • • •Jesús Pavón Abián
in reply to modulux • • •modulux
in reply to Jesús Pavón Abián • • •