Skip to content

[Windows] Improve performance in accessibility extensions#22698

Merged
PureWeen merged 4 commits intodotnet:mainfrom
MartyIX:feature/2024-05-29-AccessibilityExtensions-perf
Jun 27, 2024
Merged

[Windows] Improve performance in accessibility extensions#22698
PureWeen merged 4 commits intodotnet:mainfrom
MartyIX:feature/2024-05-29-AccessibilityExtensions-perf

Conversation

@MartyIX
Copy link
Copy Markdown
Contributor

@MartyIX MartyIX commented May 29, 2024

Description of Change

The second commit 5eda2f2 shows the idea of the improvement.

Performance impact

image

-> ~43% improvement

Issues Fixed

Contributes to #21787

@dotnet-policy-service dotnet-policy-service bot added the community ✨ Community Contribution label May 29, 2024
@MartyIX MartyIX force-pushed the feature/2024-05-29-AccessibilityExtensions-perf branch 2 times, most recently from 6447eeb to 646510e Compare May 29, 2024 08:50
@MartyIX
Copy link
Copy Markdown
Contributor Author

MartyIX commented May 29, 2024

@jsuarezruiz Would you please tell me how to fix:

  • src\Controls\src\Core\PublicAPI\net-windows\PublicAPI.Shipped.txt
  • src\Controls\src\Core\PublicAPI\net-windows\PublicAPI.Unshipped.txt

files?

}

#pragma warning disable CS0618 // Type or member is obsolete
var elemValue = (string)Element.GetValue(AutomationProperties.HelpTextProperty);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I get it right, this line should be changed to:

var elemValue = SemanticProperties.GetHint(Element);

to fix the "obsolete" warning. Is that right? Should it be done now?

@MartyIX MartyIX force-pushed the feature/2024-05-29-AccessibilityExtensions-perf branch from 2ad4c81 to 7fdc882 Compare May 29, 2024 19:14
@MartyIX MartyIX marked this pull request as ready for review May 29, 2024 19:19
@MartyIX MartyIX requested a review from a team as a code owner May 29, 2024 19:19
@MartyIX MartyIX force-pushed the feature/2024-05-29-AccessibilityExtensions-perf branch 2 times, most recently from 3a9a34c to 7fdc882 Compare May 31, 2024 07:16
@PureWeen PureWeen added area-core-platform Integration with platforms perf/general The issue affects performance (runtime speed, memory usage, startup time, etc.) (sub: perf) labels May 31, 2024
@jsuarezruiz
Copy link
Copy Markdown
Contributor

/azp run

@dotnet dotnet deleted a comment from azure-pipelines bot Jun 12, 2024
@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 3 pipeline(s).

Copy link
Copy Markdown
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The general idea here looks ok:

  • Don't set automation properties
  • If the value hasn't changed

But I think someone else should also review. 👍

@MartyIX
Copy link
Copy Markdown
Contributor Author

MartyIX commented Jun 18, 2024

@rmarinho Could you take a look please?

@MartyIX
Copy link
Copy Markdown
Contributor Author

MartyIX commented Jun 24, 2024

@mattleibow Could you take a look please?

@PureWeen PureWeen merged commit 3e3cd67 into dotnet:main Jun 27, 2024
@MartyIX MartyIX deleted the feature/2024-05-29-AccessibilityExtensions-perf branch June 27, 2024 15:15
mattleibow added a commit that referenced this pull request Jul 1, 2024
* Simplify Development.md (#23142)

* Simplify Development.md

* Update .github/DEVELOPMENT.md

Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>

* Update .github/DEVELOPMENT.md

Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>

* Update .github/DEVELOPMENT.md

Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>

* Update .github/DEVELOPMENT.md

Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>

* Update DEVELOPMENT.md

* - modify and move advanced tips to different file

* Update DEVELOPMENT.md

* Update .github/DEVELOPMENT.md

Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>

* Update docs/DevelopmentTips.md

Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>

* Update docs/DevelopmentTips.md

Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>

* - updates based on review

---------

Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>
Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>

* Wire RefreshView up to our xplat layout workflow (#23169) (#23218)

* Use better layout/measure path with refreshview

* - fix naming

* - set RefreshView content to maui compatible container

* - add test

* - fix null operator

* Update Issue23029.xaml.cs

* - fix content panel so it removes previous content

* - add additional check

* Remove adding to FutureAccessList as the app is running with runFullTrust capability (#23047)

* Call base.OnResume if Existing NavigationFragment Early (#23187)

* VSCode no longer uses MAUI to launch (#23222)

* [Android] Fix flyout behaviour switching exception (#22453)

* Fix flyout behaviour switching exception

* Tests added

* Flyout test page added

* Flyoutpage test fixes

* Flyout toggle test added

* Remove duplicate ] characters

* Flyout test pages added

* Check for platforms

* Fix title

* - fix tests

---------

Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>
Co-authored-by: Shane Neuville <shneuvil@microsoft.com>

* Renamed the project because macOS uses .app (#23223)

* Renamed the project because macOS uses .app

* And the folder

* merge first

* ns

* Move tests to new location (#23251)

* Split SingleProject targets (#23269)

* Split SingleProject targets

* Update Microsoft.Maui.Controls.SingleProject.Before.targets

* Update bug-report.yml with 8.0.61 (#23273)

* Null terminate Page on TabbedRenderer (#23290)

Co-authored-by: Shane Neuville <shneuvil@microsoft.com>

* [Windows] Improve performance in accessibility extensions (#22698)

* AccessibilityExtensions: Add missing braces

* AccessibilityExtensions: Enable nullability and improve performance

* Update shipped & unshipped API

---------

Co-authored-by: Javier Suárez <javiersuarezruiz@hotmail.com>

* [Android] Avoid double event subscribes in gesture manager (#23242)

* [Android] Avoid double event subscribes in gesture manager

* Fix typo in test text

* Bump Microsoft.Web.WebView2 from 1.0.2151.40 to 1.0.2592.51 (#23209)

* [tests] test a lot more things in `MemoryTests.cs` (#23324)

* [tests] test a lot more things in `MemoryTests.cs`

This expands the tests to cover more controls and areas.

* Add test cases for more controls:

  * `Ellipse`
  * `Grid`
  * `Path`
  * `Line`
  * `Path`
  * `RadioButton`
  * `Rectangle`
  * `RoundRectangle`

* Expand tests for a couple controls:

    * `Border` has a `StrokeShape`
    * Any `TemplatedView` gets a `ControlTemplate`

* Re-enable `ListView` for Android

This should work now after merging:

* dotnet/android#8900
* #23120

* Add a complicated test case for `BindableLayout`

Similar to the case at:

* #23199

* Skip `ListView` on API 23

* Bump Appium version to 2.11 (#23337)

* Bump Appium version to 2.11

* Update CarouselViewUITests.UpdateCurrentItem.cs

* Update appium-install.ps1

* Update CarouselViewUITests.UpdateCurrentItem.cs

* Simplify `NavigationRootManager.Connect` on the Windows platform. (#23345)

* Simplify `NavigationRootManager.Connect` on the Windows platform.

* Use ternary operator syntax

* Removed extra tabs

* Moved `_disconnected = false;` to `if (_disconnected)`

* Bump Appium Drivers (#23349)

* Fix Merge

---------

Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>
Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>
Co-authored-by: MartyIX <203266+MartyIX@users.noreply.github.com>
Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
Co-authored-by: Thomas Muller <imuller@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Javier Suárez <javiersuarezruiz@hotmail.com>
Co-authored-by: Jonathan Dick <jodick@microsoft.com>
Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>
Co-authored-by: Takym (たかやま) <15681312+Takym@users.noreply.github.com>
@github-actions github-actions bot locked and limited conversation to collaborators Jul 28, 2024
@samhouts samhouts added fixed-in-8.0.70 fixed-in-net9.0-nightly This may be available in a nightly release! labels Aug 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-core-platform Integration with platforms community ✨ Community Contribution fixed-in-8.0.70 fixed-in-net9.0-nightly This may be available in a nightly release! perf/general The issue affects performance (runtime speed, memory usage, startup time, etc.) (sub: perf) platform/windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants