Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Delphi-Komponenten mit NVDA? (https://www.delphipraxis.net/164157-delphi-komponenten-mit-nvda.html)

CCRDude 31. Okt 2011 13:37

Delphi-Komponenten mit NVDA?
 
NVDA ist ein Open Source Screen Reader, der sehbehinderten Usern die Software-Navigation per Vorlesefunktion ermöglicht.

Funktioniert mit Delphi-Programmen an sich ganz gut, abgesehen von einzelnen Komponenten. Bei mir explizit ein VirtualStringTree und TJSDialog, die nicht richtig vorgelesen werden.

Hat jemand Erfahrung damit, wie Delphi-Komponenten ergänt werden müssen, damit Screen Reader-Software allgemein (oder gar NVDA speziell) damit umgehen kann?

Die NVDA-Doku ist leider etwas schwach, oder ich habe einfach nicht gut genug geschaut, um dort entsprechendes zu finden.

mkinzler 31. Okt 2011 13:40

AW: Delphi-Komponenten mit NVDA?
 
Ich vermute mal, dass es nur mit WinControls funktioniert

himitsu 31. Okt 2011 15:00

AW: Delphi-Komponenten mit NVDA?
 
Geht es bei TLabel auch nicht?

Und wie sieht es mit Word aus? (aber eventeull haben die dafür eine Schnittstelle implementiert)
OK, da gehen die vermutlich über die API in das Programm rein und fragen nach dem Text.

Der VirtualStringTree und TLabel zeichnen die Ausgaben selber. Da gibt es keine WinControls, aus welchen man den Text auslesen könnte, sondern nur "Bilder".
Außer vielleicht per OCR, aber ich vermute auch mal, daß die die Texte aus den WinControls auslesen, also WM_GETTEXT und Co.


Du könntest entweder auch eine entpschende Schnittstelle zu deinem Programm einbauen, oder du könntest über ein unsichtbares (falls die sowas nicht ignorieren) oder ein 1 Pixel großes TMemo (ohne TabStop) eine Kopie der Texte anbieten, bzw. das Memo etwas größer hinter dem VTV (die Texte müssen darin auch nicht formatiert sein)

CCRDude 31. Okt 2011 16:21

AW: Delphi-Komponenten mit NVDA?
 
Vielen Dank für die Denkanstöße :)

Die NVDA-API funktioniert mit zusätzlicher DLL, das wollte ich, wenn möglich, vermeiden. Eine eigene Message an die Handles wäre doch viel praktischer :)

Insbesondere danke himitsu für die Erwähnung von WM_GETTEXT... falls die das wirklich machen, könnte ich glatt mal überlegen, ob ich das WM_GETTEXT des TJSDialog zumindest überschreibe und darin die Plaintext-Version des Dialoginhaltes liefere, daran hatte ich überhaupt nicht gedacht :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz