[Lazarus] Accessibility of Lazarus

Lubos Pintes lubos.pintes at gmail.com
Sun Jun 29 14:34:00 CEST 2014


Hi Greg and  all,
A long time ago, (more than one year I think), I researched about 
accessibility in Lazarus.
Unfortunately I just noticed that I lost, or totally forgot almost 
everything about this subject :).
But I remembered the following.
- There is very basic TLazAccessible object implementing properties like 
Accessible{Name,Value,Role,Description}, but the object is abstract in 
the sense that a concrete implementation must be created for concrete 
widget set.

- The above-mentioned properties are just very basic thing even if fully 
implemented, perhaps enough for things like Button, but absolutely 
insufficient for more complex things like tree views.

- The accessibility framework could be designed first, at least on 
Windows we need the concept of accessible children, structural 
navigation like next/previous child, and event notification like 
something was changed/selected/created etc. This is completely missing 
in the mentioned abstract implementation.

- The framework could perhaps be based on IAccessible2. It has good 
support on Windows and perhaps also on Linux:
http://en.wikipedia.org/wiki/IAccessible2
http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2

- This would allow us to implement the good support even for code editor 
(IAccessibleText etc.).

- There is only something implemented for MacOS X. So setting accessible 
properties on Windows just does nothing.


Dňa 27. 6. 2014 20:50 Grzegorz Zlotowicz  wrote / napísal(a):
> Hi all.
> I'm Greg from Poland, a blind computer user and programmer. Looking for
> an advanced multi-platform framework to work with FPC, the Lazarus seems
> obvious choice, but unfortunately it has some accessibility problems.
> After reading the
> http://wiki.freepascal.org/LCL_Accessibility
> I decided to write here about it, because maybe it'll be possible to fix
> the issues.
> I'm using the NVDA screen-reader (www.nvda-project.org), and working
> under Windows (currently win7, but in xp the problems were the same, as
> I tested it some time ago).
> Starting from simplest thing:
> I compiled the bitbutton program in the examples directory.
> The radio buttons, and their group names ("kind" and "layout") are read
> perfectly well.
> But the problem is the button itself.
> In the source, it has a "close" caption, but it is not announced by
> screenreader, although its' role as button is correctly recognized.
> After setting the properties Accessiblevalue and accessibledescription
> to 'close', nothing changes.
> The same problem has all buttons in Lazarus IDE, and also programs build
> using Lazarus.
> Is there some possibility of solving the problem (I mean somebody
> knowleable and willing to do it)? Knowing Pascal, I don't know where to
> start debugging this thing.
> I hope, that these problems can be rather easy to fix, and if it'd
> happen, it would make world easier for many people (not only
> programmers, but also all blind users of programs written using LCL).
>
> The treeviews aren't accessible nearly at all (all items are read by the
> screenreader at the same time without identication which one is
> selected, or which collapsed); listboxes seems to work well.
> But returning to the simplest button.
> 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
>
> Greetings, Greg.
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>






More information about the Lazarus mailing list