---
title: 'Praman 1.3: Playwright 1.60, TypeScript 7, ARIA Grounding, Screencast Highlights, and ESLint 10'
authors: [maheshwar]
tags: [release, v1.3, playwright-1.60, typescript-7, typescript-6, ai, aria, eslint-10, praman]
date: 2026-05-26
---

# Praman 1.3: Playwright 1.60, TypeScript 7, ARIA Grounding, Screencast Highlights, and ESLint 10

**Praman 1.3.0** is now available on npm. This release brings **Playwright 1.60** support with 8 new feature flags, **TypeScript 7.x** compatibility, **AI grounding via full-page ARIA snapshots**, a **screencast control highlighting** fixture, the **ESLint 10** toolchain upgrade, and an expanded docs verification pipeline with 8 automated checks.

<!-- truncate -->

## What changed since v1.2.0

Twenty-five commits landed between v1.2.0 and v1.3.0, covering Playwright 1.60 compatibility, TypeScript 7 validation, AI grounding improvements, screencast tooling, ESLint 10 migration, and a wave of dependency updates. Here is everything that matters.

---

## Playwright 1.60 — 8 New Feature Flags

Praman now ships with **Playwright 1.60** as its peer dependency (up from 1.59). The compat layer adds **8 new feature flags** gated behind version detection so you can adopt 1.60 APIs at your own pace:

| Feature flag               | API gated                      | What it enables                                               |
| -------------------------- | ------------------------------ | ------------------------------------------------------------- |
| `hasTestAbort`             | `test.abort()`                 | Programmatic test abort from within a test body               |
| `hasGetByRoleDescription`  | `getByRole({ description })`   | Filter ARIA roles by `aria-description` attribute             |
| `hasPageAriaSnapshot`      | `page.ariaSnapshot()`          | Full-page accessibility tree capture for AI grounding         |
| `hasAriaSnapshotBoxes`     | `ariaSnapshot({ boxes })`      | Bounding-box coordinates in accessibility snapshots           |
| `hasTracingHAR`            | Tracing HAR capture            | HAR network archive alongside trace recordings                |
| `hasLocatorDrop`           | `locator.drop()`               | Native drag-and-drop target for file upload and DnD scenarios |
| `hasLocatorHighlightStyle` | `locator.highlight({ style })` | Custom highlight styling for visual debugging                 |
| `hasBrowserContextEvent`   | `browserContext.on('event')`   | New browser context event subscriptions                       |

All eight flags are auto-detected — no configuration required. Existing tests on Playwright 1.57-1.59 continue to work unchanged.

**Browser engine updates:** Chromium 136 to 148, Firefox 139 to 150, WebKit 18.4 to 26.4.

**Removed APIs (zero impact):** Playwright 1.60 removed `Locator.ariaRef()`, `exposeBinding` handle option, `connect`/`connectOverCDP` logger option, and `videosPath`/`videoSize`. None were used by Praman — no breaking changes.

---

## TypeScript 7.x and 6.x Support

Praman source and published types are now compiled with **TypeScript 6.0.3**. The CI matrix validates against both TS 6.x and TS 7.x on every push.

What this means for you:

- **TypeScript 7.x** — Praman types work out of the box with full inference.
- **TypeScript 6.x** — nothing changes from v1.2.0, full support continues.
- **TypeScript 5.5+** — all Praman APIs remain compatible.
- The `strict: true` tsconfig is enforced throughout — all generics, narrowing, and inference behave correctly under TS 7 semantics.

---

## AI Grounding with ARIA Snapshots

Praman's AI context builder now captures the **full-page ARIA accessibility snapshot** and includes it in the `PageContext` envelope sent to LLM agents. This gives AI test generators a structural map of the page — control roles, names, states, and hierarchy — alongside the existing UI5 control tree.

```typescript
export default defineConfig({
  use: {
    pramanConfig: {
      includeAriaSnapshot: true, // page.ariaSnapshot() in AI context
    },
  },
});
```

The `PageContext.ariaSnapshot` field is populated automatically during bulk discovery when the flag is enabled. Requires Playwright 1.60+ (`hasPageAriaSnapshot` compat flag).

This is a significant improvement for agent-driven test generation. LLM agents can now reason about page structure using standardized ARIA roles and relationships rather than relying solely on the UI5 control tree, producing more resilient selectors and more accurate assertions.

---

## Screencast Control Highlighting

New `screencast.highlightControls()` fixture that draws a visible overlay on UI5 controls as they are interacted with during screencast recording. Every `ui5.press()`, `ui5.fill()`, and proxy method call highlights the target control with a configurable border style.

```typescript
test('demo with highlights', async ({ screencast, ui5 }) => {
  // Enable highlighting — controls flash on interaction
  screencast.highlightControls(true);

  // Custom highlight style
  screencast.highlightControls(true, {
    border: '3px solid red',
    backgroundColor: 'rgba(255, 0, 0, 0.1)',
  });

  await ui5.press({ id: 'myButton' }); // button highlighted during press
});
```

The highlight controller is **page-keyed** — each page in a multi-tab test gets its own highlight state. Highlighting is a no-op on Playwright versions below 1.60.

This makes screencast recordings dramatically easier to follow. When reviewing a test video, you can see exactly which control is being acted on at each step, even in dense SAP Fiori UIs with dozens of visible controls.

---

## OData Trace Reporter — `onError` Hook

The OData trace reporter now implements the `onError(error, workerInfo)` Playwright reporter hook, capturing worker-level errors (crashes, timeouts, unhandled exceptions) alongside OData trace data. Previously, worker errors were silently dropped from OData trace reports.

This closes a gap in observability: if a worker crashes mid-test, the OData trace now records the failure context instead of producing an incomplete trace with no explanation.

---

## ESLint 10 Ecosystem

The linting toolchain has been upgraded from ESLint 9.x to **ESLint 10.x**:

| Package                  | From    | To     |
| ------------------------ | ------- | ------ |
| `eslint`                 | 9.39.2  | 10.4.0 |
| `@eslint/js`             | 9.39.3  | 10.0.1 |
| `eslint-plugin-n`        | 17.24.0 | 18.0.1 |
| `eslint-plugin-security` | 3.0.1   | 4.0.0  |
| `eslint-plugin-promise`  | 7.2.1   | 7.3.0  |

The `@microsoft/eslint-plugin-sdl` plugin (peerDep on `eslint ^9`) works correctly at runtime with ESLint 10 — resolved via npm `overrides` until Microsoft publishes an update. Zero config changes needed for existing setups.

---

## Docs Verification Pipeline — 8 Checks

The documentation accuracy pipeline now runs **8 automated checks** on every PR, up from 6 in v1.2:

1. TypeScript snippet type-checking
2. API reference accuracy
3. Config default validation
4. Import path verification
5. AI-assisted review
6. SAP UI5 API verification
7. Code example execution
8. Cross-reference link validation

This means every code example in the docs is compiled, every config default is verified against source, and every cross-reference link is validated — automatically, on every pull request.

---

## Dependency Updates

**Runtime:**

- `zod` 4.3.6 to 4.4.3
- `dotenv` 16.x to 17.4.2

**LLM SDKs & Telemetry:**

- `@anthropic-ai/sdk` 0.82.0 to 0.98.0
- `openai` SDK updated
- OpenTelemetry suite updated

**CI Actions:**

- `actions/github-script` 7.0.1 to 9.0.0
- `actions/setup-node` 6.3.0 to 6.4.0
- `actions/upload-artifact` 4.6.2 to 7.0.1
- `googleapis/release-please-action` 4.4.0 to 5.0.0
- `github/codeql-action` 4.35.1 to 4.35.3

**Dev tooling:**

- `ts-morph` 24.0.0 to 28.0.0
- `cspell` 9.7.0 to 10.0.0
- `commitlint` 20 to 21, `lint-staged` 16 to 17
- `postcss` 8.5.8 to 8.5.15, `protobufjs` 7.5.4 to 7.6.1

**Security:** `protobufjs`, `postcss`, `@xmldom/xmldom` bumped to resolve advisories.

---

## Other Improvements

- **Claude Code Plugin docs**: New documentation for Claude Code and Cowork plugin integration.
- **Plugin install instructions**: Fixed to match official Claude Code documentation format.
- **Capabilities registry**: `screencast.highlightControls` and ARIA grounding capabilities registered in `capabilities.yaml`.

---

## Upgrading from v1.2

```bash
npm install playwright-praman@latest
```

**Breaking changes in v1.3**: None. All fixtures, matchers, proxies, and authentication strategies remain source-compatible. No test code changes are required.

If you are on Playwright 1.57-1.59, the 8 new feature flags are simply inactive — your tests continue to run unchanged. Upgrade to Playwright 1.60 when ready to unlock the new APIs.

---

## What's next

The roadmap for v1.4 focuses on:

- **OPA5 migration agent** (ADR-030): An automated agent that reads existing OPA5 test files and generates equivalent Praman tests, including control mapping and assertion translation.
- **BTP Work Zone multi-tenant** improvements to the `btpWorkZone` fixture.
- **Playwright MCP integration**: First-class support for `@playwright/mcp` session hand-off to Praman's AI agents.

Follow the project on [GitHub](https://github.com/mrkanitkar/playwright-praman) or subscribe to the [npm package](https://www.npmjs.com/package/playwright-praman) for release notifications.

---

_Praman is open-source under the Apache-2.0 license.
[Docs](https://praman.dev) · [npm](https://www.npmjs.com/package/playwright-praman) · [GitHub](https://github.com/mrkanitkar/playwright-praman) · [Discord](#)_
