Skip to content

[Bug] MissingMethodException: AccessibilityNodeInfoCompat.set_Checked with AndroidX.Core 1.17.0 #22999

@RaFaGG

Description

@RaFaGG

Current behavior

On Android, when the UnoSKCanvasView receives an accessibility focus change, a MissingMethodException is thrown:

System.MissingMethodException: Method not found: void AndroidX.Core.View.Accessibility.AccessibilityNodeInfoCompat.set_Checked(bool)

   at void UnoSKCanvasView.OnFocusChanged(bool gainFocus, FocusSearchDirection direction, Rect previouslyFocusedRect)
   at void ExploreByTouchHelper.OnFocusChanged(bool, int, Rect)
   at void ExploreByTouchHelper.n_OnPopulateNodeForVirtualView_ILandroidx_core_view_accessibility_AccessibilityNodeInfoCompat_(IntPtr, IntPtr, int, IntPtr)

The error is caught and logged (non-crashing), but accessibility for toggle/check state is broken.

Expected behavior

No exception. The accessibility node should correctly report checked state.

How to reproduce

  1. Use Uno Platform with SkiaRenderer on Android
  2. Have a dependency that pulls in Xamarin.AndroidX.Core >= 1.17.0 (e.g., Sentry >= 6.2.0 with Sentry.Bindings.Android for net10.0-android36.0)
  3. Navigate to any page and trigger accessibility focus on the canvas view

Root cause

In UnoExploreByTouchHelper.cs line ~211, the code uses:

node.Checked = peer is IToggleProvider toggleProvider && toggleProvider.ToggleState == On;

Xamarin.AndroidX.Core 1.17.0 renamed the Checked property to IsChecked on AccessibilityNodeInfoCompat, so set_Checked(bool) no longer exists at runtime.

Suggested fix

Replace node.Checked with node.IsChecked in UnoExploreByTouchHelper.cs.

Environment

  • Uno.Sdk: 6.5.31 (also affects 6.6.0-dev.180, file unchanged since July 2025)
  • .NET: 10.0
  • Target: net10.0-android36.0
  • Xamarin.AndroidX.Core: 1.17.0 (pulled by Sentry.Bindings.Android 6.3.0)
  • Device: Samsung SM-S947B, Android 16 (API 36)
  • Affected users: 9 (18 occurrences in Sentry)

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions