Improve presentation of checkable list items#8858
Conversation
|
The only side affect to this is that the states are announced right at the very end. And this can be very annoying when having to work out if one of them is checked. |
In my opinion, this makes much sense. We could go for this as part of this pr?
That's a bit rigorous, though I agree it certainly should be configurable. |
Mmmm. The value is not spoken for checkable list items it seems. I can't find out why not, though. |
|
The value for checkboxes is suppressed, as ROLE_CHECKBOX is in controlTypes.silentValuesForRoles. Even when I remove CHECKBOX from there, the order of speech is "name check box value not checked", which is certainly not the intention here. |
@michaelDCurran: What do you think about exposing the rest of the columns in the description? It will make the columns silent if one disables reporting of descriptions, but I guess that's an acceptable drawback. |
|
@michaelDCurran In #8858 (comment), I suggested having the first column in the name and the rest in the description. I'm not sure whether I still agree with this suggestion, though. We couldn't make sure that the first column is of more importance than the other columns. In some list view controls, the first column is either empty or an identifier. |
|
It is a bit unclear where this pr is heading to. Any suggestions to bring this forward @josephsl or @feerrenrut? |
|
Would it be possible to special case checkable lists to report role and the state first. This is not ideal, but we have done something similar for reporting selection i.e. selected is reported before selection when gaining focus, but after in all other cases |
It should be possible, yes. However, not without a whole bunch of refactoring. Currently it isn't quite trivial to swap properties speech. |
|
@LeonarddeR I've tested your code and it is awesome! In addition to the fixes listed in the PR description this also causes proper position info to be reported for these controls, and makes reporting of their full content working regardless of the reporting of description being enabled or not. If the only downside to this is the fact that states are reported at the end I personally would consider it to be a non-issue - the same happens for regular checkboxes and while having it configurable would be nice it should not block this work IMO. |
|
@LeonarddeR Can you update the description please? It currently says:
Can you explain how, with examples? This makes it so much quicker to understand the intent of a PR. |
|
@feerrenrut done. Let me know if you need additional details. |
|
@LeonarddeR could you please add some lines to the user guide about table navigation commands working also in some list views? This would also close issue #3193. Thanks. |
|
I have decided that the disadvantage of the states now being announced later is not a large enough problem to refuse the other benefits of this pr. The order and way we handle states in general does need to be rethought, but I'm happy to merge this pr as is. |
|
That's a good point to have this PR merged to allow table navigation in this type of list. Also this fixes the issue in the file list of Tortoise SVN commit window where hidden column content were read. However, I think that the "checked" / "unchecked" information should be available earlier; the user should not be forced to wait until NVDA has read the whole line to have this information. In practice, in tortoise SVN, I will need to press 2 times the space bar to uncheck/check the current item; it is faster than waiting for NVDA to read the whole line. @michaelDCurran do you agree that these points still need to be discussed, even if we do not reverse this PR. May I open a new issue for this? Here are also my thoughts regarding the discussion in this PR: @LeonarddeR wrote:
It seems that IAccessible uses the first column as object's name and the remaining columns as object's description. This let me think that the first column has a specific role. @lukaszgo1 wrote:
I partially disagree here since a checkable list item contains generally more information than a single checkbox especially when there are more columns. |
Link to issue number:
Fixes #8554
Fixes #8857
Summary of the issue:
SysListView32 Checkable list items, such as in disk cleanup manager, are presented differently from regular Syslistview32 list items.
For regular list items, we have custom code that constructs a name from all the columns of the list item. However, for checkable list items, this logic does not apply. Therefore, only the first column is presented in the name, the other columns in the description. Also, fake table navigation is not available on these items.
Actual results:
Expected results
Description of how this pull request fixes the issue:
Testing performed:
Tested table navigation and object navigation in disk cleanup, all worked as expected.
Known issues with pull request:
None
Change log entry:
Changes
Bug fixes