[Fanda] formulářový režim, či propouštění?

Peter Vágner pvdeejay na gmail.com
Pondělí Listopad 16 19:44:47 CET 2009


Dobrý večer,

Dňa 16.11.2009 19:04, Adam Mikulášek  napísal:
> pro začátek by úplně stačilo, kdyby NVDA jako sekundární zdroj informací
> mimo MSAA využívala i klasickou windowsáckou hierarchii oken. Např.:
> jako objekt nejnižší úrovně v hierarchii MSAA se najde nějaký ten
> rámeček, panel nebo něco podobného, co se tváří, že neobsahuje žádný
> text a nemá žádné child-objekty. Pak by si NVDA mělo zjistit window
> handle daného objektu a pomocí GetWindowText se pokusit přečíst text
> okna a pomocí dalších windows-api funkcí podstrom všech oken původního
> okna.
Nie je to dotiahnuté až do takejto miery, ale presne toto rieši modul 
NVDAObjects.window.
S aplikáciami založenými na QT4 alebo GTK toto nie je celkom 
aplikovateľné, pretože ich prvky neodpovedajú na známe window messages.
Toto je momentálne jediný spôsob, ako získať text z editačných polí, 
doozvučiť stromové zoznamy a niektoré ďalšie prvky.
> Bohužel NVDA vůbec nevyužívá modul Win32GUI, který je součástí
> balíku rozšíření Pythonu pro Windows, který NVDa používá.
NVDA sa čím ďalej tým viacej spolieha priamo na systémové funkcie (pozri 
moduly winUser a winKernel), závislosť na win32gui je čím ďalej tým 
viacej menej potrebná.
> V poslední
> době se pokouším se v Pythonu naučit a pokusit se některé věci do NVDA
> přidat, ale je to práce na roky.
Gratulujem, len tak ďalej, chce to len chuť a trochu zápalu pre dobrú vec.
> Bohužel neznám nikoho, kdo se trochu
> hlouběji vyzná ve zdrojácích NVDA, aby mi trochu objasnil tu
> komplikovanou strukturu všech těch modulů a jakým způsobem si NVDA
> překládá MSAA objekty do své hierarchie.
Myslím si, že konferencie NVDA fungujú dosť dobre a vývojári sú schopní 
aj ochotní pomerne slušne reagovať. Je len treba sa opýtať.
> Ale na první zběžný pohled mi
> připadá, že pokud NVDA narazí na typ MSAA objektu, jehož typ nezná, tak
> jej prostě ignoruje,
Správne, neprístupné prvky stále väčšinou končia v triede IAccessible, 
pretože MSAA je stále primárnym zdrojom informácií. Ak ale existuje iný 
lepší zdroj informácií alebo prípadne naprogramovaný špecifický modul 
NVDA, ktorý sprístupňuje tento prvok, je ho možné správne namapovať na 
príslušnú triedu (pozri NVDAObjects.window, kde sú takto sprístupnené 
editačné polia, pole programu Word, Excel a pod).
> Podle mě by se mělo vytvořit něco
> jako třída IAccessible.Unknown, do které by takové objekty spadly a
> jejíž prostřednictvím by se dalo o daném objektu zjistit aspoň něco.
Žiaľ táto myšlienka nie je zatiaľ celkom dobre aplikovateľná do praxe. 
Ťažko nájdeme skupinu prvkov, o ktorých by sa dalo zistiť niečo iné ako 
je názov prvku. Čo nás dovádza k riešeniu, aké sa používa teraz. To, čo 
nazývaš > aspoň něco
často krát nie je možné programátorsky získať a čaká sa na implementáciu 
odchytávania funkcií na vykreslovanie textu, alebo dokonca Wideo 
driveru, o ktorých sa tu dnes rozpútala vášnivá diskusia.
> Takhle je NVDA ve stavu, že v některých aplikacích, které zná, mluví
> podstatně líp než třeba JAWS, ale v těch, které nezná, nemluví nic.
Presne toto je cieľ. Využiť čo možno najkvalitnejšie zdroje informácií.
> JAWS
> jde opačnou cestou, skoro nikde nemluví na sto procent, ale skoro všude
> se s ním dá nějak obstojně pracovat, i když třeba složitě a zdlouhavě.
Áno, pretože jaws spolieha najmä video driver, čo tu už bolo v 
súvislosti s Windows 7 dnes vysvetlené.
> Podle mě by se vývojáři NVDA měli teď víc soustředit na univerzální
> ozvučení, než přidávat podporu pro jednotlivé aplikace. Příkladem tohoto
> jevu je ozvučení Skype. Ve Skype 4.1 mi NVDA 2009 nemluvila naprosto
> nic, ani jediné políčko, ale jakmile se mi Skype updatoval na verzi 5,
> najednou NVDA prozřela a začala mluvit srovnatelně s JAWSem.
Skype je uzavretý systém a tak sa nedá nič robiť len čakať, kedy sa o 
prístupnosť postarajú oni.

PV



Další informace o konferenci Fanda