Skip to content
Back to skills

Fieldworks Uia2 Parity Testing

ASecurity

Design or review FieldWorks UI automation and accessibility tests: UIA2, FlaUI, Appium, WinAppDriver, Avalonia.Headless, keyboard, focus, IME, and automation-id strategy. Use whenever a task adds, changes, or evaluates automated UI tests or accessibility/workflow parity claims for WinForms or Avalonia views — including deciding whether a test belongs in the headless or desktop environment.

  • 111 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 3, 2026
designgoshelltesting

Works with

  • cli

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add sillsdev/FieldWorks --skill fieldworks-uia2-parity-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fieldworks Uia2 Parity Testing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fieldworks Uia2 Parity Testing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sillsdev-fieldworks-uia2-parity-testing/badge)](https://www.skillsdirectory.com/skills/sillsdev-fieldworks-uia2-parity-testing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fieldworks-uia2-parity-testing
description: "Design or review FieldWorks UI automation and accessibility tests: UIA2, FlaUI, Appium, WinAppDriver, Avalonia.Headless, keyboard, focus, IME, and automation-id strategy. Use whenever a task adds, changes, or evaluates automated UI tests or accessibility/workflow parity claims for WinForms or Avalonia views — including deciding whether a test belongs in the headless or desktop environment."
---

# FieldWorks UIA2 Parity Testing

## Environment Separation

- Avalonia.Headless is for fast in-process control, layout, view-model,
  binding, and input tests.
- UIA2/FlaUI/Appium/WinAppDriver tests require realized desktop windows and
  validate native accessibility trees, focus, invoke patterns, and product
  integration.
- Do not call a headless smoke test a UIA2 baseline — see
  parity-evidence.md §2.

## Role in the Parity Bundle

In a Path 3 parity bundle (defined in
`../fieldworks-winforms-to-avalonia-migration/references/parity-evidence.md`),
desktop automation contributes the workflow/accessibility evidence only:
launcher/chooser reachability, focus movement and return, invoke/cancel/
accept paths, native automation tree identity, and shell-level keyboard
behavior. It does not replace semantic snapshots or visual/render evidence;
report it alongside those artifacts for the same scenario id.

## Canonical Examples

- Headless app/test setup:
  `Src/Common/FwAvalonia/FwAvaloniaTests/TestAppBuilder.cs`; input and
  focus patterns in `DetailEditingTests.cs`, `DetailFocusMemoryTests.cs`
- Realized-window UIA smoke on the legacy product path:
  `Src/xWorks/xWorksTests/Avalonia/Hosting/WinFormsUiaSmokeTests.cs`
- Preview-host UIA:
  `Src/Common/FwAvaloniaPreviewHost/FwAvaloniaPreviewHostTests/PreviewHostUiaTests.cs`
- Automation-id locking: `Src/Common/FwAvalonia/FwAvaloniaTests/OwnedControlAutomationConventionTests.cs`

## Automation Identity

Derive AutomationIds from the IR `StableId` (`{StableId}`,
`{StableId}.Label`, `{StableId}.{WsAbbrev}`), defined as code constants —
never resource keys, never localized text. Localized names/tooltips go on
`AutomationProperties.Name`. Owned controls need custom automation peers
when stock peers do not expose the required patterns.

## Required Evidence

- Stable automation IDs or accessible names for controls under test.
- Explicit coverage of focus movement, invoke/click path, popup/chooser
  reachability, keyboard shortcuts, and failure artifacts.
- When UI mode or host wiring changes, desktop automation must cover the
  real switch-driven host refresh or fallback behavior on realized windows;
  manual handler calls or headless-only assertions do not prove product
  wiring.
- Clear CI placement: headless tests can run broadly; desktop automation
  needs an interactive Windows desktop or a configured automation host.

## Review Red Flags

- "Runs in the background" used for UIA2/Appium without explaining the
  required desktop/session.
- Manual `OnPropertyChanged(...)` or similar handler invocation presented
  as proof of live UI-mode wiring.
- Tests assert implementation internals instead of user-observable
  accessibility behavior.
- Automation selectors rely on localized labels when stable IDs are
  available or required.
- IME coverage claimed without a real text-editor control and
  input-method evidence. (IME composition/commit is a known open gap for
  rich-text scope — do not let a checkbox claim it implicitly.)
- Sleep-based waits instead of event-driven synchronization.

## Handoff

Classify each test as headless, native desktop automation, or smoke
substitute, and state what parity claim it can and cannot support. For
bundle work, say which workflow/accessibility assertions the desktop
environment proved, whether switch wiring/fallback was exercised on a
realized window, and which claims still need another environment.

## Keep This Skill Current

When a new automation pattern, peer implementation, CI-placement constraint, or
flakiness fix proves out, add it here in the same PR; route durable lessons
through `../fieldworks-winforms-to-avalonia-migration/references/lessons-learned.md`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.