Howdy Lists,

Sorry for the cross posting but i want to share some useful information to you.

Storm and Me cooking since some months a Idea i want to introduce here.

We call the Project "Jörmungandr". We choose this name because Jörmungandr is as a child of Loki Fenrirs brother. It is an huge Sea Serpent in Mythology.

Some information:
https://en.wikipedia.org/wiki/J%C3%B6rmungandr

You may say: "WTF, chrys are you f..ing crazy? what do you telling here?"

Let me explain...

On Linux we work with different environments like TTY, GUI or an Terminalemulator. for this we fight with even more different screen readers. But all of them do a single job.

- Read TTY: like espeakup or fenrir
-Read Desktop: like orca or the old stalled gnopernicus
- spawn an subprocess to read an Terminal Emulator (PTY Emulation): like yasr, emacspeak or fenrir

Fenrir does already a good job for terminal emulation and read TTY as a single screenreader cause by its modularity...

This is not enought!

The Jörmungandr Project is a "new" screen reader what should be able to read All of our environments (TTY, GUI, TerminalEmulation). This is also not enough to me. I want to have it network transparent to be able read RDP, VNC, ssh or similar stuff (useful for admins). So its something like an uinified speakup, orca, nvda, yasr, sbl and so on.

Sounds like crazy shit and it is. but its indeed doable. And the best, we can reuse fenrirs codebase for some parts in first place.

Some technical details:

To have this we will create several components:

- Data Miners: running as standalone application to collect data for the given screen. Its something like an "Networktransparent Screendriver" what runs as own process and connected to an Processor and the Core. We will i.e. have Data Miners for PTY Emulation, TTY reading, at-spi reading and for inaccessible applications OCR.

- Processors: does work with data given by the data miners. GUI and CLI. it will do stuff like Review Mode, Define a Window or SayAll. So the Functionality. Why we need an own component for this? Lets say Text and Graphical environments are completely different. For GUI we have Roles (Button, Checkbox, Textbox) and States (Checked, Selected,Focused) what could be proceeded and presented. In Text we just have an 2D Matrix of Characters. All Textbased Mines will connect to an "Textprocessor" and all GUI Miners will connect to an GUI Processor to process the information correctly.

- Drivers: Like Braille, Speech, Sound, Input, Remote are connected to the core or loaded into the core. some of them are also Network Transparent to be able to run it on other machines to have speak at your server or anything else. you can have multiple Drivers of the same category connected to the core as well. maybe you want to create speech or sound at your server and your local machine as well (maybe you do help desk or switch between them). Some of them are loaded into the Core directly like input or remote.

- Core: Is where all pieces come together. Its the "Server" part of the screenreader. Drivers, Data Mines and Processors connects to it. it does manage the components, settings, event queue and the Shortcut handling

Not in 1.0:

- Fixer: Is loaded into the Core and connected to the Processors. It should "learn" about accessibility issues baased on the processed data and try to fix those issues automatically. I work a lot with Google Tenserflow and would use something like that. The idea is for example on websites fi you stuck in an area, Jörmungandr should recognice this and bring you out. or for some nasty timers what tick once per second what floods the TTS, detect those cases and make them more "quite". this is not part of the offical 1.0 but an nice idea for later. so i didnt finaly think about the design here.

I choose C++ as primary language for 3 reasons:

1. Many blind people seems to have problems with pythons indentation.
2. C++ offers all needed bindings
3. its fast as hell

Fenrirs components could be recycled for most part. those will be replaced step by step with an C++ component after having the core finished.

Jörmungandr should not only focused for Linux - But also work on other operation systems. to smelt them all together.

Let me know what you think. Maybe you wanna help? let me know. We need any help to accomplish this mission.

_______________________________________________
Blinux-list mailing list
Blinux-list@redhat.com
https://www.redhat.com/mailman/listinfo/blinux-list

Reply via email to