Jump to content

Zugänglichkeit von Dvbviewer >=5.2 für Bildschirmleseprogramme


dave090679

Recommended Posts

Hallo Leute,

Seit einigen Jahren bin ich begeisterter Nutzer von DVBViewer. Ich verfolge die Entwicklung der Barrierefreiheit von DVBViewer seit der Version 4.0. Bis zur Version 5.1 war der DVBViewer sehr gut mit dem freien und quelloffenen Bildschirmleser NVDA zugänglich.
Seit der Version 5.2 ist die Zugänglichkeit von DVBViewer für menschen mit (Seh-)Behinderung jedoch zurückgegangen. Dies bezieht sich vor Allem auf Elemente von Baumstrukturen (Einträge im Epg-Fenster, Einträge in der Aufnahmeprogrammierung, Kanäle in der Senderliste, Kategorien im Optionsfenster etc). Dies führt dazu, dass ein Nutzer von Bildschirmleseprogrammen nicht (Bzw. nicht mehr «Sauber» angesagt/angezeigt bekommt, welcher Eintrag momentan den Fokus besitzt. Bis zur DVBViewer-Version 5.1 funktionierte noch alles reibungslos.

Der folgende auszug aus dem NVDA-Protokoll zeigt, wie NVDA bei DVBViewer 5.1 einen Eintrag aus dem Epg-Fenster (korrekt) darstellt:
-------------------------------------------------------------------------------
Developer info for navigator object:
name: u'Do; Start: 21:00; Dauer: 00:45; Sendung: K\xf6nigliche Dynastien (4/4); Titel: Die Hohenzollern; Ende: 21:45; Genre: Serie; Beschreibung: Er k\xf6nnte heute Kaiser sein: Georg Friedrich Prinz von Preu\xdfen. Doch nach dem verlorenen Ersten Weltkrieg brach die Monarchie in Deutschland wie ein Kartenhaus zusammen. Zu seiner Hochzeit mit Sophie Prinzessin von Isenburg im August 2011 kamen Blaubl\xfcter und VIPs aus ganz Europa, das Fernsehen berichtete live. Sonst lebt der jugendliche Chef des ehemals regierenden K\xf6nigshauses Preu\xdfen eher zur\xfcckgezogen. Wenig erinnert noch an den Glanz von vor 100 Jahren, als zur Verm\xe4hlung von Kaisertochter Prinzessin Victoria der englische K\xf6nig Georg und Russlands Zar Nikolaus anreisten.\r\nProduziert in HD\r\n[16:9]\r\n[stereo] [deu]\r\n[stereo] [mul]; Datum: 27.11.2014'
role: ROLE_TREEVIEWITEM
states: STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.IAccessible.OutlineItem object at 0x05F95A70>
Python class mro: (<class 'NVDAObjects.IAccessible.OutlineItem'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: u'Start: 21:00; Dauer: 00:45; Sendung: K\xf6nigliche Dynastien (4/4); Titel: Die Hohenzollern; Ende: 21:45; Genre: Serie; Beschreibung: Er k\xf6nnte heute Kaiser sein: Georg Friedrich Prinz von Preu\xdfen. Doch nach dem verlorenen Ersten Weltkrieg brach die Monarchie in Deutschland wie ein Kartenhaus zusammen. Zu seiner Hochzeit mit Sophie Prinzessin von Isenburg im August 2011 kamen Blaubl\xfcter und VIPs aus ganz Europa, das Fernsehen berichtete live. Sonst lebt der jugendliche Chef des ehemals regierenden K\xf6nigshauses Preu\xdfen eher zur\xfcckgezogen. Wenig erinnert noch an den Glanz von vor 100 Jahren, als zur Verm\xe4hlung von Kaisertochter Prinzessin Victoria der englische K\xf6nig Georg und Russlands Zar Nikolaus anreisten.\r\nProduziert in HD\r\n[16:9]\r\n[stereo] [deu]\r\n[stereo] [mul]; Datum: 27.11.2014'
location: (333, 449, 23, 18)
value: None
appModule: <'appModuleHandler' (appName u'DVBViewer', process ID 10160) at address 21fdbd0>
appModule.productName: u'DVBViewer Pro'
appModule.productVersion: u'5.1'
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 5311196
windowClassName: u'TVirtualStringTree'
windowControlID: 5311196
windowStyle: 1446051840
windowThreadID: 5976
windowText: u''
displayText: u'Do'
IAccessibleObject: <POINTER(IAccessible) ptr=0x9efbb70 at 59b2990>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=5311196, objectID=-4, childID=0
IAccessible accName: u'Do; Start: 21:00; Dauer: 00:45; Sendung: K\xf6nigliche Dynastien (4/4); Titel: Die Hohenzollern; Ende: 21:45; Genre: Serie; Beschreibung: Er k\xf6nnte heute Kaiser sein: Georg Friedrich Prinz von Preu\xdfen. Doch nach dem verlorenen Ersten Weltkrieg brach die' (truncated)
IAccessible accRole: ROLE_SYSTEM_OUTLINEITEM
IAccessible accState: STATE_SYSTEM_HOTTRACKED, STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048708)
IAccessible accDescription: u'Start: 21:00; Dauer: 00:45; Sendung: K\xf6nigliche Dynastien (4/4); Titel: Die Hohenzollern; Ende: 21:45; Genre: Serie; Beschreibung: Er k\xf6nnte heute Kaiser sein: Georg Friedrich Prinz von Preu\xdfen. Doch nach dem verlorenen Ersten Weltkrieg brach die Mon' (truncated)
IAccessible accValue: u'0'
-------------------------------------------------------------------------------
Wie ihr an den Iaccessible-Eigenschaften sehen könnt, liefert die zugänglichkeitsschnittstelle IAccessible bis zur DVBViewer-Version 5.1 noch den aktuell ausgewählten Eintrag aus dem Epg-Fenster korrekt aus. Diesen kann NVDA dann auch problemlos in die eigenschaft Name abstrahieren. Das funktioniert - unabhängig von der Spaltenbreite - in allen mehrspaltigen Baumstrukturen korrekt.

An der Eigenschaft Location ist außerdem zu sehen, dass sich NVDA auch - korrekt - nur einen Eintrag aus dem Epg "greift".

Nach der Aktualisierung auf DVBViewer 5.3.2 sieht die Entwicklerinfo allerdings so aus:
-------------------------------------------------------------------------------
INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (15:00:56):
Developer info for navigator object:
name: None
role: ROLE_UNKNOWN
states: STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.IAccessible.ContentGenericClient object at 0x05D2A070>
Python class mro: (<class 'NVDAObjects.IAccessible.ContentGenericClient'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (511, 339, 724, 127)
value: u'Fr 08:45 05:15 Vor Ort: Sitzung des Deutschen Bundestages Moderation: Julia Sch\xf6ningFr 14:00 00:45 Durch den hohen Nordenchen Bundestages Unterwegs in Skandinavien - Film von ClaudiFr 14:45 00:30 Vor \u2026'
appModule: <'appModuleHandler' (appName u'DVBViewer', process ID 5568) at address 60ca510>
appModule.productName: u'DVBViewer Pro'
appModule.productVersion: u'5.3.2.0'
TextInfo: <class 'displayModel.DisplayModelTextInfo'>
windowHandle: 9898806
windowClassName: u'TVirtualStringTree'
windowControlID: 9898806
windowStyle: 1446051840
windowThreadID: 3444
windowText: u''
displayText: u'Fr 08:45 05:15 Vor Ort: Sitzung des Deutschen Bundestages Moderation: Julia Sch\xf6ningFr 14:00 00:45 Durch den hohen Nordenchen Bundestages Unterwegs in Skandinavien - Film von ClaudiFr 14:45 00:30 Vor Ort: LIVE T\xfcrkei-Besuch des Papstesages Moderation' (truncated)
IAccessibleObject: <POINTER(IAccessible) ptr=0x78dc70 at 60c13f0>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=9898806, objectID=-4, childID=0
IAccessible accName: None
IAccessible accRole: ROLE_SYSTEM_CLIENT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)
IAccessible accDescription: None
IAccessible accValue: None
-------------------------------------------------------------------------------
Das bedeutet im Klartext, dass IAccessible keine Infos zum aktuell ausgewählten Element mehr liefert - mit mehr oder Weniger fatalen Konsequenzen: Bei der Verwendung von NVDA als Bildschirmleser bedeutet das, dass der aktuelle Eintrag aus dem Displaymodel gewonnen werden muss, wie ihr an der Eigenschaft displaytext sehen könnt. Ein bekannter von mir, der Jaws als Bildschirmleser benutzt, bekommt zwar den aktuell ausgewählten Eintrag korrekt angezeigt, muss allerdings die Spaltenbreite verstellen, um alle Infos (z. B. zu einer programmierten Aufnahme zu sehen.

Die Zugänglichkeit von DVBViewer für NVDA könntet ihr verbessern, indem ihr die Zugänglichkeitsschnittstelle IAcessible mit dem passenden Werten füttert.
Aus der Tatsache, dass fast alle Klassennamen mit einem "T" beginnen, schließe ich, dass der DVBViewer mit Delphi oder einem Derivat erstellt wurde. Weitere Infos dazu, wie man IAccessible in benutzerdefinierten Steuerelementen richtig einbaut, findet ihr hier: http://stackoverflow.com/questions/16320914/creating-accessible-ui-components-in-delphi


Um die Barrierefreiheit auf breiterer Front sicherzustellen, solltet ihr dafür sorgen, dass der DVBViewer mit mindestens zwei der nachfolgend aufgeführten Bildschirmleser mindestens den Stand von Version 5.1 erreicht:

NVDA 2014.4: http://sourceforge.net/projects/nvda/files/releases/2014.4/nvda_2014.4.exe/download
Jaws 15.0: http://www.freedomsci.de/serv01.htm
Windows-eyes: http://www.window-eyes.at/demo/downloadpage.php
Cobra: http://download.baum-retec.info/pms/Cobra/COBRA10.1.0Deu.exe



Falls sich jemand von euch am Erstellen einer NVDA-Erweiterung versuchen will, findet ihr eine Anleitung hier: http://addons.nvda-project.org/devDocs/devDocs.de.html


mit freundlichen Grüßen

Dave

Link to comment

Das Problem ist hierbei die vom DVBViewer verwendete VirtualTreeView-Komponente, also Third-Party-Code - nicht nur ein paar Zeilen, sondern eine Menge. Der Autor der Komponente hat irgendwann gewechselt, und der neue hat einiges geändert, vielleicht war ihm die Barrierefreiheit nicht so wichtig, vielleicht hatte er den Aspekt nicht im Blick, keine Ahnung... wir können auch nicht einfach auf eine beliebige ältere Version zurück, weil darunter die Funktionalität an anderer Stelle leiden könnte.

 

Wir wissen nicht, mit welcher Code-Variante bzw. Version der leider 2013 überraschend verstorbene ehemalige hauptamtliche DVBViewer-Programmierer Lars den DVBViewer 5.1 kompiliert hat. Deshalb stochern wir hinsichtlich des Problems im Dunkeln.

 

Nichtsdestotrotz werden die ausführlichen Hinweise eventuell helfen, der Sache auf die Spur zu kommen - danke schon mal. Ich gebe das weiter...

Link to comment

Hi,

 

Vielen Dank für die schnelle Antwort. Ich hoffe, dass ihr einen Ansatzpunkt zum Implementieren von Barrierefreiheit in die neueren DVBViewer-Versionen findet.

 

mfg

 

Dave

Link to comment

Hi,

 

ich habe gerade keine aktuelle VM, denke aber das Tjod die Ursache für den Fehler gefunden hat. Kannst du mir eventuell eine Mail schicken?

 

Christian

Link to comment

Danke für deine Antwort, ich habe heute NVDA installiert und bin positiv erstaunt wie viel sich in den letzten Jahren getan hat bei Screenreadern. Vor allem die Tatsache das NVDA sich nicht so extrem im System einnistet ist recht praktisch beim Testen außerhalb von virtuellen Maschinen.

Ich denke auch das Problem endlich in den Griff bekommen zu haben, zumindest hoffe ich das und habe dir heute Abend eine neue Testversion geschickt.

 

Christian

PS: Ich werde mich mal in Ruhe mit der WM_GETOBJECT und IAccessible Beschäftigen. Wenn etwas Luft ist probiere ich mich mal an einer Machbarkeitsstudie das OSD damit auszustatten. Denkbar wäre das, da wir ja die Texte kennen und diese somit auch übergeben können.

Link to comment

hallo Leute,

 

Ich hatte vor reichlich einem Jahr einmal versucht, von NVDA aus den DVBViewer so anzuzapfen, dass NVDA das Osd-Menü ansagt, und zwar egal wie und mit welcher Fernbedienung man den Viewer bedient hat. Ich wollte damals die Ereignisse onaction und onselecteditemchange nutzen, um zum geeigneten Zeitpunkt den aktuellen Osd(Menü)Eintrag zu "besorgen" und anzusagen. Das funktioniert auch - aber leider nur grundsätzlich; soll heißen: manchmal werden - aus welchem Grund auch immer - die Menüeinträge mehrfach angesagt.

 

Es gibt hier im Forum auch eine Diskussion dazu, nämlich im Thema DVBViewer mittels com-Objekten ansteuern/zugänglich machen

 

mfg

 

Dave

Link to comment
  • 5 months later...

Hallo Leute,

Ich habe grade eben die neue DVBViewer-Version 5.4.1 getestet - mit ernüchternden Ergebnisse - zumindest was die Zugänglichkeit angeht.

Im DVBViewer 5.4.1 war noch alles «im Grünen Bereich», was die Zugänglichkeit von Baumstrukturen anging (Optionen, Epg, Aufnahmeprogrammierung, Kanalliste usw). Hier wurde noch alle Spalten vollständig angezeigt. Unter DVBViewer 5.4.0 sah beispielsweise ein Epg-Eintrag bicg si azs;
Mo; Start: 14:05; Dauer: 00:45; Sendung: Die Rettungsflieger; Titel: Vertrauensfragen; Ende: 14:50; Genre: Serie; Beschreibung: Serie, Deutschland 2007
Rentnerin Gerda montiert auf dem Balkon Blumenkästen. Als ein Kasten in die Tiefe stürzt, glaubt sie, dass er ein Nachbarbaby erschlagen hat. Vor lauter Aufregung hat sie einen Herzanfall.
Eine junge Frau ist ohne ersichtlichen Grund gegen einen Baum gefahren. Die Polizei vermutet einen Fahrfehler der Fahranfängerin, doch Blank und Wollcke entdecken, dass trotz nagelneuem TÜV mit dem Wagen etwas nicht in Ordnung ist.
Darsteller:
...
[16:9]
[stereo] [deu]
[stereo] [mul]
[stereo] [mis]
[Dolby Digital 2.0] [deu]
[DVB subtitles] [deu]; Datum: 01.06.2015

in der Entwicklerinfo von NVDA sah damals auch noch alles gut aus:

INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (14:17:18):
Developer info for navigator object:
name: u'Mo; Start: 14:05; Dauer: 00:45; Sendung: Die Rettungsflieger; Titel: Vertrauensfragen; Ende: 14:50; Genre: Serie; Beschreibung: Serie, Deutschland 2007 \r\nRentnerin Gerda montiert auf dem Balkon Blumenk\xe4sten. Als ein Kasten in die Tiefe st\xfcrzt, glaubt sie, dass er ein Nachbarbaby erschlagen hat. Vor lauter Aufregung hat sie einen Herzanfall. \r\nEine junge Frau ist ohne ersichtlichen Grund gegen einen Baum gefahren. Die Polizei vermutet einen Fahrfehler der Fahranf\xe4ngerin, doch Blank und Wollcke entdecken, dass trotz nagelneuem T\xdcV mit dem Wagen etwas nicht in Ordnung ist. \r\nDarsteller: \r\n ...\r\n[16:9]\r\n[stereo] [deu]\r\n[stereo] [mul]\r\n[stereo] [mis]\r\n[Dolby Digital 2.0] [deu]\r\n[DVB subtitles] [deu]; Datum: 01.06.2015'
role: ROLE_TREEVIEWITEM
states: STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.IAccessible.OutlineItem object at 0x05F09AB0>
Python class mro: (<class 'NVDAObjects.IAccessible.OutlineItem'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: u'Start: 14:05; Dauer: 00:45; Sendung: Die Rettungsflieger; Titel: Vertrauensfragen; Ende: 14:50; Genre: Serie; Beschreibung: Serie, Deutschland 2007 \r\nRentnerin Gerda montiert auf dem Balkon Blumenk\xe4sten. Als ein Kasten in die Tiefe st\xfcrzt, glaubt sie, dass er ein Nachbarbaby erschlagen hat. Vor lauter Aufregung hat sie einen Herzanfall. \r\nEine junge Frau ist ohne ersichtlichen Grund gegen einen Baum gefahren. Die Polizei vermutet einen Fahrfehler der Fahranf\xe4ngerin, doch Blank und Wollcke entdecken, dass trotz nagelneuem T\xdcV mit dem Wagen etwas nicht in Ordnung ist. \r\nDarsteller: \r\n ...\r\n[16:9]\r\n[stereo] [deu]\r\n[stereo] [mul]\r\n[stereo] [mis]\r\n[Dolby Digital 2.0] [deu]\r\n[DVB subtitles] [deu]; Datum: 01.06.2015'
location: (513, 339, 26, 18)
value: None
appModule: <'appModuleHandler' (appName u'DVBViewer', process ID 14972) at address 5e185b0>
appModule.productName: u'DVBViewer Pro'
appModule.productVersion: u'5.3.2.0'
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 199716
windowClassName: u'TVirtualStringTree'
windowControlID: 199716
windowStyle: 1446051840
windowThreadID: 14364
windowText: u''
displayText: u'Mo'
IAccessibleObject: <POINTER(IAccessible) ptr=0x9118ef8 at 5cf6e40>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=199716, objectID=-4, childID=0
IAccessible accName: u'Mo; Start: 14:05; Dauer: 00:45; Sendung: Die Rettungsflieger; Titel: Vertrauensfragen; Ende: 14:50; Genre: Serie; Beschreibung: Serie, Deutschland 2007 \r\nRentnerin Gerda montiert auf dem Balkon Blumenk\xe4sten. Als ein Kasten in die Tiefe st\xfcrzt, glaubt' (truncated)
IAccessible accRole: ROLE_SYSTEM_OUTLINEITEM
IAccessible accState: STATE_SYSTEM_HOTTRACKED, STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048708)
IAccessible accDescription: u'Start: 14:05; Dauer: 00:45; Sendung: Die Rettungsflieger; Titel: Vertrauensfragen; Ende: 14:50; Genre: Serie; Beschreibung: Serie, Deutschland 2007 \r\nRentnerin Gerda montiert auf dem Balkon Blumenk\xe4sten. Als ein Kasten in die Tiefe st\xfcrzt, glaubt sie' (truncated)
IAccessible accValue: u'0'

In der DVBViewer-Version 5.4.1 scheint die Unterstützung für die Zugänglichkeit "weggebrochen" zu sein:-(. Zumindest sieht jetzt derselbe Epg-Eintrag plötzlich (wieder) so aus:
Mo 14:05 00:45 Die Rettungsflieger Vertrauensfragen 14:50

und die passende Entwicklerinfo von NVDA sieht dann so aus:

INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (14:12:35):
Developer info for navigator object:
name: None
role: ROLE_UNKNOWN
states: STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.IAccessible.ContentGenericClient object at 0x05EF2D70>
Python class mro: (<class 'NVDAObjects.IAccessible.ContentGenericClient'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (511, 338, 716, 128)
value: u'Mo 14:05 00:45 Die Rettungsflieger Vertrauensfragen 14:50Mo 14:50 00:45 Hart aber herzlich Mordstheater 15:35Mo 15:35 00:50 Hart aber herzlich Das gr\xfcne Zimmer 16:25Mo 16:25 00:50 Drei Engel f\xfcr Charl\u2026'
appModule: <'appModuleHandler' (appName u'DVBViewer', process ID 14204) at address 5de6910>
appModule.productName: u'DVBViewer Pro'
appModule.productVersion: u'5.2.7.2'
TextInfo: <class 'displayModel.DisplayModelTextInfo'>
windowHandle: 592594
windowClassName: u'TVirtualStringTree'
windowControlID: 592594
windowStyle: 1446051840
windowThreadID: 13564
windowText: u''
displayText: u'Mo 14:05 00:45 Die Rettungsflieger Vertrauensfragen 14:50Mo 14:50 00:45 Hart aber herzlich Mordstheater 15:35Mo 15:35 00:50 Hart aber herzlich Das gr\xfcne Zimmer 16:25Mo 16:25 00:50 Drei Engel f\xfcr Charlie Abenteuer in der Karibik (2/2) 17:15Mo 17:15 00' (truncated)
IAccessibleObject: <POINTER(IAccessible) ptr=0x8f6cfc8 at 5d57260>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=592594, objectID=-4, childID=0
IAccessible accName: None
IAccessible accRole: ROLE_SYSTEM_CLIENT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)
IAccessible accDescription: None
IAccessible accValue: None



Für mich fühlt sich das ganz so an wie damals in den 5.2er-Versionen:-(. (siehe oben in der Ausgangsnachricht dieser Diskussion).

Über einen Fix dieses Problems würde ich mich freuen.


mfg

Dave

Link to comment

Mit welcher Schriftgröße-Einstellung unter Systemsteuerung > Darstellung und Anpassung > Anzeige wird Windows betrieben? Dort gibt es 100%, 125% und 150% als Option.

Link to comment

Hi Griga,

 

im Moment sind 100% eingestellt. Die Schriftgrößeneinstellung spielt imho üblicherweise keine Rolle, weil die Zugänglichkeitsschnittstellen UIA Bzw. IAccessible unabhängig von Schriftgrößen, Fensterpositionen, Farbtiefen oder Bildschirmauflösung immer mit denselben Daten versorgt werden. Probiert es mal mit der DVBViewer-Version 5.4.0 Beta oder mit der 5.1 aus! ich verwende die Entwicklerversion von NVDA (master-11139). die Entwicklerversionen können hier heruntergeladen werden: http://community.nvda-project.org/wiki/Snapshots

 

NVDA verwendet keinen Video-interceptor-Treiber und ist dadurch unabhängig von Farben, Fensterpositionen, Bildschirmauflösungen und Schriftgrößen; kurz: von allem, was irgendwie mit Optik zu tun hat:-).

 

Bei Bildschirmleseprogrammen, die mit Hilfe eines Video-Interceptor-Treibers die Grafikkarte anzapfen (wie die meisten kostenpflichtigen Produkte) hast du recht. Dort haben Spaltenbreiten, Schriftgrößen und Fenstergrößen tatsächlich Einfluss auf die angezeigten Inhalte. Das kann könnt ihr auch bei NVDA beobachten, wenn ihr auch die Eigenschaft Displaytext in der Entwicklerinfo bei unterschiedlichen einstellungen anschaut. Aus diesem Grund sollte jeder, der NVDA-erweiterungen entwickelt, die eigenschaft DisplayText wirklich nur in ausnahmefällen benutzen!

 

 

Normalerweise sollte NVDA beim Durchwandern von Baumstrukturen (Epg, Kanalliste, Optionenkategorienliste, Aufnahme- und Timerstatistik, Aufnahmeprogrammierung etc). mit den Pfeiltasten auf und ab immer den aktuell ausgewählten Eintrag (und nur den) ansagen Bzw. auf der Braillezeile anzeigen. In den "fehlerhaften" Versionen zeigt (und sagt) NVDA alle sichtbaren Einträge (eben Inhalt von Displaytext) an, weil an den Zugänglichkeitsschnittstellen Funkstille herrscht:-(. Das könnt ihr in der Entwicklerinfo am unteren Teil (an den IAccessible-Eigenwschaften sehen. Diese sind im "negativbeispiel nämlich leer, im Positivbeispiel sthen die korrekten Werte drin.

 

mfg

 

Dave

Edited by dave090679
Link to comment

Kann ich bestätigen. Das Problem ist eigentlich nur das eine für Virtualtreeview notwendige Klasse nicht initialisiert wurde. Die eine fehlende Zeile war beim Aufräumen wohl abhanden gekommen. Jetzt funktioniert das ganze wieder wie gehabt. Sprich es wird von der Tabelle der Spaltenbezeichner (z.B. Beschreibung) vorgelesen und danach der Inhalt der Spalte auf dem der Cursor sich befindet. Im nächsten Update funktioniert das ganze wieder wie gehabt.

 

Christian

PS: Bei der Gelegenheit habe ich die OEM Versionen auch dahingehend erweitert.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...