Skip to content

UIA handler: add and map drag cancel and complete events to state change event#14104

Merged
seanbudd merged 1 commit into
nvaccess:masterfrom
josephsl:UIADragCancelCompleteState
Sep 5, 2022
Merged

UIA handler: add and map drag cancel and complete events to state change event#14104
seanbudd merged 1 commit into
nvaccess:masterfrom
josephsl:UIADragCancelCompleteState

Conversation

@josephsl

@josephsl josephsl commented Sep 4, 2022

Copy link
Copy Markdown
Contributor

Link to issue number:

Additional fix for #14081
Follow-up to #14097

Summary of the issue:

NVDA is not announcing "dragging' when the item being dragged is let go and dragged again.

Description of user facing changes

When the item is grabbed a second tie, NVDA will announce 'dragging'.

Description of development approach

Add and map UIA drag cancel and complete events to state changes. This allows UIA object states cache to reflect the fact that "is grabbed" property is False, allowing NVDA to announce "dragging" when the item is grabbed again. At the moment NVDA will not say "done dragging" when drag complete event fires - that might be something to investigate in the future (remapping drag cancel/commplete events or doing soething with state change event/speech output).

Testing strategy:

Manual and add-on based testing:

  1. While the build for the pull request is running, rearranging Windows 10 Start menu tiles or Windows 11 taskbar icons.
  2. Select an item and reposition it (drag and drop part 1).
  3. Let go of the item.
  4. Reposition the same item again (drag and drop step 2).
    Before the PR: NVDA does not say "dragging" when the same item is dragged a second time.
    After the PR: NVDA says "dragging" when drag and drop happens a second time.
    In the future (perhaps by someone else): NVDA says "done dragging" when UIA drag complete event fires, hopefully with improved object states announcement logic unless event remapping is desirable.

Known issues with pull request:

None

Change log entries:

None needed as this is a follow-up fix for #14081.

Code Review Checklist:

  • Pull Request description:
    • description is up to date
    • change log entries
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • API is compatible with existing add-ons.
  • Documentation:
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • Security precautions taken.

…nge events. Re nvaccess#14081.

Without defining UIA drag cancel and complete events, NVDA will not nanounce 'dragging' when dragging the selected item a second time (the added events do allow flushing staes cache as part of state change event, although NVDA will not nanounce 'done dragging' which is somethig to be investigated in the future).
@josephsl josephsl requested a review from a team as a code owner September 4, 2022 23:49
@josephsl josephsl requested a review from seanbudd September 4, 2022 23:49
@seanbudd

seanbudd commented Sep 5, 2022

Copy link
Copy Markdown
Member

Can the change in this PR be integrated into the system test created for #14101 ?

@josephsl

josephsl commented Sep 5, 2022 via email

Copy link
Copy Markdown
Contributor Author

@seanbudd seanbudd merged commit 92244b9 into nvaccess:master Sep 5, 2022
@nvaccessAuto nvaccessAuto added this to the 2022.4 milestone Sep 5, 2022
@josephsl josephsl deleted the UIADragCancelCompleteState branch October 8, 2022 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants