Skip to content

[Testing] Fix for enable uitests ios26#33686

Merged
PureWeen merged 19 commits intodotnet:inflight/currentfrom
TamilarasanSF4853:enable-uitests-ios26-fix-2
Feb 21, 2026
Merged

[Testing] Fix for enable uitests ios26#33686
PureWeen merged 19 commits intodotnet:inflight/currentfrom
TamilarasanSF4853:enable-uitests-ios26-fix-2

Conversation

@TamilarasanSF4853
Copy link
Contributor

@TamilarasanSF4853 TamilarasanSF4853 commented Jan 23, 2026

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

This pull request resolves the test failure that occurred in this PR #33622 when enabling the UI test for iOS 26. This PR updates the handling of virtual keyboard dismissal and improves back arrow query logic for iOS in the Appium test utilities. The main changes enhance reliability when interacting with the iOS keyboard and add support for identifying the correct back button based on the iOS version.

  • Enables lane for testing uitests on iOS26

iOS Keyboard Interaction Improvements:

  • In iOS 26, HideKeyboard does not tap the return key because the return key string changed from “return” to an arrow button in iOS 26, so the keyboard does not close, which causes the test to fail. The method for dismissing the keyboard now explicitly locates and clicks the “Return” button within the keyboard UI instead of using the generic HideKeyboard command, which increases reliability.

iOS Back Arrow Query Logic:

  • In iOS 26, the back arrow ID changed to BackButton, so Appium does not find the back arrow. For iOS, the logic now checks the platform version iOS 26 or lower. For iOS 26 and higer versions it uses the accessibility ID "BackButton" and for lower versions it uses accessibility ID "Back". This ensures compatibility with UI changes across iOS versions.

@dotnet-policy-service dotnet-policy-service bot added community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration labels Jan 23, 2026
@sheiksyedm sheiksyedm marked this pull request as ready for review January 23, 2026 10:14
Copilot AI review requested due to automatic review settings January 23, 2026 10:14
@sheiksyedm
Copy link
Contributor

/azp run maui-pr-uitests 

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request addresses test failures that occurred when enabling UI tests for iOS 26. The PR updates iOS-specific test utilities to handle platform changes in keyboard dismissal behavior and back button accessibility identifiers introduced in iOS 26.

Changes:

  • Modified keyboard dismissal to explicitly locate and click the "Return" button instead of using the generic HideKeyboard command
  • Added version detection logic to use different back button accessibility IDs based on iOS version
  • Updated CI pipeline configuration to test against iOS 26.0 and enable iOS version testing

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.

File Description
src/TestUtils/src/UITest.Appium/Actions/AppiumIOSVirtualKeyboardActions.cs Updated DismissKeyboard method to explicitly find and click the Return button within the keyboard UI element
src/TestUtils/src/UITest.Appium/HelperExtensions.cs Added iOS version detection method and updated back button query logic to use version-specific accessibility IDs
eng/pipelines/common/ui-tests.yml Added defaultiOSVersion parameter (26.0) and updated all references to use this parameter instead of hardcoded 18.5
eng/pipelines/ci-uitests.yml Updated iOS version arrays to include 'latest' (26.0) for testing

@rmarinho rmarinho changed the base branch from main to enable-uitests-ios26 January 23, 2026 11:26
@rmarinho rmarinho changed the base branch from enable-uitests-ios26 to main January 23, 2026 11:29
@sheiksyedm
Copy link
Contributor

/azp run maui-pr-uitests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sheiksyedm
Copy link
Contributor

/azp run maui-pr-uitests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sheiksyedm
Copy link
Contributor

/azp run maui-pr-uitests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sheiksyedm
Copy link
Contributor

/azp run maui-pr-uitests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sheiksyedm
Copy link
Contributor

/azp run maui-pr-uitests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@PureWeen PureWeen force-pushed the enable-uitests-ios26-fix-2 branch from ae33d01 to 03f6652 Compare February 20, 2026 19:51
@PureWeen
Copy link
Member

/azp run maui-pr-uitests, maui-pr-devicetests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

Remove devdiv-only gate so iOS 18.5 UI tests also run on dnceng-public
CI pushes to main, release/*, net*.0, and inflight/* branches.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen
Copy link
Member

/azp run maui-pr-uitests, maui-pr-devicetests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@PureWeen PureWeen changed the base branch from main to inflight/current February 21, 2026 13:35
@PureWeen PureWeen merged commit d4a965a into dotnet:inflight/current Feb 21, 2026
142 of 159 checks passed
@github-project-automation github-project-automation bot moved this from Ready To Review to Done in MAUI SDK Ongoing Feb 21, 2026
github-actions bot pushed a commit that referenced this pull request Feb 24, 2026
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

This pull request resolves the test failure that occurred in this PR
#33622 when enabling the UI test for
iOS 26. This PR updates the handling of virtual keyboard dismissal and
improves back arrow query logic for iOS in the Appium test utilities.
The main changes enhance reliability when interacting with the iOS
keyboard and add support for identifying the correct back button based
on the iOS version.

* Enables lane for testing uitests on iOS26

**iOS Keyboard Interaction Improvements:**
* In iOS 26, HideKeyboard does not tap the return key because the return
key string changed from “return” to an arrow button in iOS 26, so the
keyboard does not close, which causes the test to fail. The method for
dismissing the keyboard now explicitly locates and clicks the “Return”
button within the keyboard UI instead of using the generic HideKeyboard
command, which increases reliability.

**iOS Back Arrow Query Logic:**
* In iOS 26, the back arrow ID changed to BackButton, so Appium does not
find the back arrow. For iOS, the logic now checks the platform version
iOS 26 or lower. For iOS 26 and higer versions it uses the accessibility
ID "BackButton" and for lower versions it uses accessibility ID "Back".
This ensures compatibility with UI changes across iOS versions.

---------

Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
PureWeen added a commit that referenced this pull request Feb 26, 2026
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

This pull request resolves the test failure that occurred in this PR
#33622 when enabling the UI test for
iOS 26. This PR updates the handling of virtual keyboard dismissal and
improves back arrow query logic for iOS in the Appium test utilities.
The main changes enhance reliability when interacting with the iOS
keyboard and add support for identifying the correct back button based
on the iOS version.

* Enables lane for testing uitests on iOS26

**iOS Keyboard Interaction Improvements:**
* In iOS 26, HideKeyboard does not tap the return key because the return
key string changed from “return” to an arrow button in iOS 26, so the
keyboard does not close, which causes the test to fail. The method for
dismissing the keyboard now explicitly locates and clicks the “Return”
button within the keyboard UI instead of using the generic HideKeyboard
command, which increases reliability.

**iOS Back Arrow Query Logic:**
* In iOS 26, the back arrow ID changed to BackButton, so Appium does not
find the back arrow. For iOS, the logic now checks the platform version
iOS 26 or lower. For iOS 26 and higer versions it uses the accessibility
ID "BackButton" and for lower versions it uses accessibility ID "Back".
This ensures compatibility with UI changes across iOS versions.

---------

Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
PureWeen added a commit that referenced this pull request Feb 27, 2026
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

This pull request resolves the test failure that occurred in this PR
#33622 when enabling the UI test for
iOS 26. This PR updates the handling of virtual keyboard dismissal and
improves back arrow query logic for iOS in the Appium test utilities.
The main changes enhance reliability when interacting with the iOS
keyboard and add support for identifying the correct back button based
on the iOS version.

* Enables lane for testing uitests on iOS26

**iOS Keyboard Interaction Improvements:**
* In iOS 26, HideKeyboard does not tap the return key because the return
key string changed from “return” to an arrow button in iOS 26, so the
keyboard does not close, which causes the test to fail. The method for
dismissing the keyboard now explicitly locates and clicks the “Return”
button within the keyboard UI instead of using the generic HideKeyboard
command, which increases reliability.

**iOS Back Arrow Query Logic:**
* In iOS 26, the back arrow ID changed to BackButton, so Appium does not
find the back arrow. For iOS, the logic now checks the platform version
iOS 26 or lower. For iOS 26 and higer versions it uses the accessibility
ID "BackButton" and for lower versions it uses accessibility ID "Back".
This ensures compatibility with UI changes across iOS versions.

---------

Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
# Conflicts:
#	src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue7678_1.cs
jfversluis pushed a commit that referenced this pull request Mar 2, 2026
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

This pull request resolves the test failure that occurred in this PR
#33622 when enabling the UI test for
iOS 26. This PR updates the handling of virtual keyboard dismissal and
improves back arrow query logic for iOS in the Appium test utilities.
The main changes enhance reliability when interacting with the iOS
keyboard and add support for identifying the correct back button based
on the iOS version.

* Enables lane for testing uitests on iOS26

**iOS Keyboard Interaction Improvements:**
* In iOS 26, HideKeyboard does not tap the return key because the return
key string changed from “return” to an arrow button in iOS 26, so the
keyboard does not close, which causes the test to fail. The method for
dismissing the keyboard now explicitly locates and clicks the “Return”
button within the keyboard UI instead of using the generic HideKeyboard
command, which increases reliability.

**iOS Back Arrow Query Logic:**
* In iOS 26, the back arrow ID changed to BackButton, so Appium does not
find the back arrow. For iOS, the logic now checks the platform version
iOS 26 or lower. For iOS 26 and higer versions it uses the accessibility
ID "BackButton" and for lower versions it uses accessibility ID "Back".
This ensures compatibility with UI changes across iOS versions.

---------

Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jfversluis pushed a commit that referenced this pull request Mar 2, 2026
## What's Coming

.NET MAUI inflight/candidate introduces significant improvements across
all platforms with focus on quality, performance, and developer
experience. This release includes 24 commits with various improvements,
bug fixes, and enhancements.


## Animation
- [Android] Fixed TransformProperties issue when a wrapper view is
present by @Ahamed-Ali in #29228
  <details>
  <summary>🔧 Fixes</summary>

- [Android Image.Scale produces wrong
layout](#7432)
  </details>

## Button
- Fix ImageButton not rendering correctly based on its bounds by
@Shalini-Ashokan in #28309
  <details>
  <summary>🔧 Fixes</summary>

- [ImageButton dosen't scale Image
correctly](#25558)
- [ButtonImage width not sizing
correctly](#14346)
  </details>

## CollectionView
- [Android] Fixed issue where group Header/Footer template was applied
to all items when IsGrouped was true for an ObservableCollection by
@Tamilarasan-Paranthaman in #28886
  <details>
  <summary>🔧 Fixes</summary>

- [[Android] Group Header/Footer Repeated for All Items When IsGrouped
is True for
ObservableCollection](#28827)
  </details>

- [Android] CollectionView: Fix reordering when using
DataTemplateSelector by @NanthiniMahalingam in
#32349
  <details>
  <summary>🔧 Fixes</summary>

- [[Android][.NET9] CollectionView Reorderer doesn't work when using
TemplateSelector](#32223)
  </details>

- [Android] Fix for incorrect scroll position when using ScrollTo with a
header in CollectionView by @SyedAbdulAzeemSF4852 in
#30966
  <details>
  <summary>🔧 Fixes</summary>

- [Potential off-by-one error when using ScrollTo in CollectionView with
a header.](#18389)
  </details>

- Fix Incorrect Scrolling Behavior in CollectionView ScrollTo Method
Using Index Value by @Shalini-Ashokan in
#27246
  <details>
  <summary>🔧 Fixes</summary>

- [CollectionView ScrollTo not working under
android](#27117)
  </details>

- [Android] Fix System.IndexOutOfRangeException when scrolling
CollectionView with image CarouselView by @devanathan-vaithiyanathan in
#31722
  <details>
  <summary>🔧 Fixes</summary>

- [System.IndexOutOfRangeException when scrolling CollectionView with
image CarouselView](#31680)
  </details>

- [Android] Fix VerticalOffset Update When Modifying
CollectionView.ItemsSource While Scrolled by @devanathan-vaithiyanathan
in #26782
  <details>
  <summary>🔧 Fixes</summary>

- [CollectionView.Scrolled event offset isn't correctly reset when items
change on Android](#21708)
  </details>

## Editor
- Fixed Editor vertical text alignment not working after toggling
IsVisible by @NanthiniMahalingam in
#26194
  <details>
  <summary>🔧 Fixes</summary>

- [Editor vertical text alignment not working after toggling
IsVisible](#25973)
  </details>

## Entry
- [Android] Fix Numeric Entry not accepting the appropriate Decimal
Separator by @devanathan-vaithiyanathan in
#27376
  <details>
  <summary>🔧 Fixes</summary>

- [Numeric Entry uses wrong decimal separator in MAUI app running on
Android](#17152)
  </details>

- [Android & iOS] Entry/Editor: Dismiss keyboard when control becomes
invisible by @prakashKannanSf3972 in
#27340
  <details>
  <summary>🔧 Fixes</summary>

- [android allows type into hidden Entry
control](#27236)
  </details>

## Gestures
- [Android] Fixed PointerGestureRecognizer not triggering PointerMoved
event by @KarthikRajaKalaimani in
#33889
  <details>
  <summary>🔧 Fixes</summary>

- [PointerGestureRecognizer does not fire off PointerMove event on
Android](#33690)
  </details>

- [Android] Fix PointerMoved and PointerReleased not firing in
PointerGestureRecognizer by @KarthikRajaKalaimani in
#34209
  <details>
  <summary>🔧 Fixes</summary>

- [PointerGestureRecognizer does not fire off PointerMove event on
Android](#33690)
  </details>

## Navigation
- [Android] Shell: Fix OnBackButtonPressed not firing for navigation bar
back button by @kubaflo in #33531
  <details>
  <summary>🔧 Fixes</summary>

- [OnBackButtonPressed not firing for Shell Navigation Bar button in
.NET 10 SR2](#33523)
  </details>

## Shell
- [iOS] Fixed Shell Navigating event showing same current and target
values by @Vignesh-SF3580 in #25749
  <details>
  <summary>🔧 Fixes</summary>

- [OnNavigating wrong target when tapping the same
tab](#25599)
  </details>

- [iOS, macOS] Fixed Shell Flyout Icon is always black in iOS 26 by
@Dhivya-SF4094 in #32997
  <details>
  <summary>🔧 Fixes</summary>

- [Shell Flyout Icon is always
black](#32867)
- [[iOS] Color Not Applied to Flyout Icon or Title on iOS
26](#33971)
  </details>

## TitleView
- [Android] Fixed duplicate title icon when setting TitleIconImageSource
Multiple times by @SubhikshaSf4851 in
#31487
  <details>
  <summary>🔧 Fixes</summary>

- [[Android] Duplicate Title Icon Appears When Setting
NavigationPage.TitleIconImageSource Multiple
Times](#31445)
  </details>

## WebView
- Fixed the crash on iOS when setting HeightRequest on WebView inside a
ScrollView with IsVisible set to false by @Ahamed-Ali in
#29022
  <details>
  <summary>🔧 Fixes</summary>

- [Specifying HeightRequest in Webview when wrapped by ScrollView set
"invisible" causes crash in
iOS](#26795)
  </details>


<details>
<summary>🧪 Testing (3)</summary>

- [Testing] Fix for enable uitests ios26 by @TamilarasanSF4853 in
#33686
- [Testing] Fixed Test case failure in PR 34173 - [02/21/2026] Candidate
- 1 by @TamilarasanSF4853 in #34192
- [Testing] Fixed Test case failure in PR 34173 - [02/21/2026] Candidate
- 2 by @TamilarasanSF4853 in #34233

</details>

<details>
<summary>📦 Other (3)</summary>

- Fix Glide IllegalArgumentException in PlatformInterop for destroyed
activities by @jonathanpeppers via @Copilot in
#33805
- [iOS] Fix MauiCALayer and StaticCAShapeLayer crash on finalizer thread
by @pshoey in #33818
  <details>
  <summary>🔧 Fixes</summary>

- [[iOS] MauiCALayer and StaticCAShapeLayer crash on finalizer thread in
Release/AOT builds](#33800)
  </details>
- Merge branch 'main' into inflight/candidate in
1a00f12

</details>
**Full Changelog**:
main...inflight/candidate

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
Co-authored-by: pshoey <pshoey@users.noreply.github.com>
Co-authored-by: Subhiksha Chandrasekaran <subhiksha.c@syncfusion.com>
Co-authored-by: devanathan-vaithiyanathan <114395405+devanathan-vaithiyanathan@users.noreply.github.com>
Co-authored-by: prakashKannanSf3972 <127308739+prakashKannanSf3972@users.noreply.github.com>
Co-authored-by: Jakub Florkowski <42434498+kubaflo@users.noreply.github.com>
Co-authored-by: KarthikRajaKalaimani <92777139+KarthikRajaKalaimani@users.noreply.github.com>
Co-authored-by: NanthiniMahalingam <105482474+NanthiniMahalingam@users.noreply.github.com>
Co-authored-by: BagavathiPerumal <bagavathiperumal.a@syncfusion.com>
Co-authored-by: Vignesh-SF3580 <102575140+Vignesh-SF3580@users.noreply.github.com>
Co-authored-by: Shalini-Ashokan <shalini.ashokan@syncfusion.com>
Co-authored-by: Tamilarasan Paranthaman <93904422+Tamilarasan-Paranthaman@users.noreply.github.com>
Co-authored-by: SyedAbdulAzeemSF4852 <syedabdulazeem.a@syncfusion.com>
Co-authored-by: Ahamed-Ali <102580874+Ahamed-Ali@users.noreply.github.com>
Co-authored-by: Dhivya-SF4094 <127717131+Dhivya-SF4094@users.noreply.github.com>
Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: TamilarasanSF4853 <tamilarasan.velu@syncfusion.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-testing Unit tests, device tests community ✨ Community Contribution p/0 Current heighest priority issues that we are targeting for a release. partner/syncfusion Issues / PR's with Syncfusion collaboration

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

7 participants