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@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to