On Fri, 5 Aug 2011, Felipe Monteiro de Carvalho wrote:

The problem is caused because TDBNavigator uses TSpeedButton to
implement it's buttons, which are buttons which cannot receive focus.

This is Delphi-compatible, but to me this is also a major
accessibility issue. It means that blind people for example cannot use
TDBNavigator!

I'm sure that blind people can live with this limitation, so I don't really
consider this argument very valid :-)

To fix this I want to introduce a Options property with the style
noFocusableButton. If this option is activated, then the buttons will
be based on TBitBtn instead, so the control will be accessible, so it
remain fully Delphi compatible, but you can adapt it to be accessible
too.

Any comments or anyone opposed?

There is a reason why these buttons cannot receive focus.

If they receive focus, then the currently active control loses focus.

If it is a DB-Aware control, This means that the control may decide to post
pending data changes. This in turn will change the state of the dataset to
something other than the state the navigator button expects, and the state change notification will arrive too late for the button to ignore the click.

So changing this is IMHO not per se a good idea. If you do include this option, make sure it is not activated by default.

Michael.

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to