[Lazarus] Accessibility of Lazarus

Grzegorz Zlotowicz grzezlo at wp.pl
Sun Jun 29 00:03:38 CEST 2014


Hi.
Unfortunately, I can't switch widgetset for bitbutton project. After 
spending about an hour or more in the project options dialog, I can 
achieve nearly everything (using keyboard or build-in in the 
screen-reader virtual mouse emulation), but with no success about 
widgetset, and in general any macro definitions.
According to:
http://wiki.lazarus.freepascal.org/IDE_Window:_Compiler_Options
I hope that this macros grid should exist somewhere in the compiler 
options, or on the build modes dialog.
Unfortunately although I managed to add the debug and release modes, I 
can not in any way access the macros grid.
I'm using:
lazarus-1.2.4-fpc-2.6.4-win32

Returning to the accessibility:
the wm_gettext message result is defined in the windowText field of 
quoted log, but instead relying only on winapi, NVDA tries to use MSAA 
or IAccessible interfaces, which give much more (for example possibility 
of reacting to events of control changing state, without querying it 
continously and comparing with previous state).

Greetings, Greg.

W dniu 2014-06-28 08:46, Hans-Peter Diettrich napisaƂ/a:
> Grzegorz Zlotowicz schrieb:
>
>> the fragment of the NVDA's log says about this control:
>>
>> name: u''
>> role: ROLE_BUTTON
>> states: STATE_FOCUSABLE, STATE_FOCUSED
>> isFocusable: True
>> hasFocus: True
>> description: None
>> value: None
>> windowHandle: 32703706
>> windowClassName: u'Button'
>> windowText: u''
>> displayText: u''
>> IAccessible event parameters: windowHandle=32703706, objectID=-4, 
>> childID=0
>> IAccessible accName: None
>> IAccessible accRole: ROLE_SYSTEM_PUSHBUTTON
>> IAccessible accState: STATE_SYSTEM_DEFAULT, STATE_SYSTEM_FOCUSED, 
>> STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048836)
>> IAccessible accDescription: None
>> IAccessible accValue: None
>
> It looks to me like the WNDCLASS and/or WNDPROC of the control lacks 
> support for the Name, WindowText and DisplayText fields or methods. 
> E.g. for the WindowText the WNDPROC should react on WM_GETTEXT 
> messages. The NVDA developers should know more about how they try to 
> obtain above properties from a window handle.
>
> The fix depends on the handling of the WNDCLASS.WNDPROC in the Lazarus 
> widgetsets, at both designtime and runtime. In either case this 
> WNDPROC should react properly on WM_GETTEXT, i.e. return the Text or 
> Caption string (PCHAR) associated with the control. The LCL gurus 
> should be able to find out why this doesn't work as expected.
>
> A test program can enumerate the window handles, associated with a 
> running Lazarus IDE or some Lazarus application, and output the result 
> of WM_GETTEXT for each handle. More tests can be added for the other 
> properties retrieved by NVDA (selected state...).
>
>
> It would be helpful if you supply the Lazarus version and widgetset 
> which you are using, and whether you use a 32 or 64 bit Lazarus and 
> Windows. A screen reader finally should be able to retrieve all 
> required values in all these combinations.
>
> Did you also try other than the Win32 widgetset in building the IDE or 
> applications, with possibly different results in your screen reader?
>
> DoDi
>
>
> -- 
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>




More information about the Lazarus mailing list