# Reported issues for mcp-accessibility-scanner

Pod holds 20 of 34 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [mcp-accessibility-scanner](/mcp/mcp-accessibility-scanner).

## Most discussed

### Can we support Authenticated Login in this MCP Server

I'll give url, username and password and want to capture all url's and scan each page and return results. Can we add this enhancement ?

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/3) · 2025-05-19 · closed · external user · 3 comments

### Extension relay drops onDetach `reason` and tears down the tab on involuntary `target_closed` detach (upstream playwright#42221)

## Upstream change

- **Commit:** [`ffbfb2746e301d0432479ec99c05eb1ad32000fe`](https://github.com/microsoft/playwright/commit/ffbfb2746e301d0432479ec99c05eb1ad32000fe)
- **PR:** [microsoft/playwright#42221](https://github.com/microsoft/playwright/pull/42221) — _"fix(extension): recover the debugger after an involuntary detach"_ (merged Aug 13, 2026)
- **Fixes:** [microsoft/playwright#42089](https://github.com/microsoft/playwright/issues/42089) — _"[MCP]: Extension-backed visible-tab screenshot f

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/178) · 2026-08-20 · closed · 2 comments

### `browser_evaluate` throws `_evaluateFunction is not a function` on every call (removed in playwright-core 1.59)

Small bug report: `browser_evaluate` throws on every call (page- and element-scoped alike) with `receiver._evaluateFunction is not a function`. The other tools (`browser_navigate`, `browser_take_screenshot`, `browser_snapshot`, ...) all work fine.

## Root cause

`src/tools/evaluate.ts`:

```ts
const receiver = locator ?? tab.page as any;
const result = await receiver._evaluateFunction(params.function);
```

Upstream Playwright **removed `_evaluateFunction` from `playwright-core`'s client API** 

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/84) · 2026-06-19 · closed · external user · 2 comments

### [Feature Request] Add Docker support for containerized deployment

Currently, the repository requires a local environment setup to run the MCP server. While this works for local development, it can lead to issues and make it difficult to deploy the server in cloud environments or via orchestration tools.
I would like to propose adding a Dockerfile to the project to streamline the setup process.

Proposed Changes :

I am happy to submit a Pull Request for this. My plan is to:

- Create a multi-stage Dockerfile to keep the final image size small.
- Add a .dockeri

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/43) · 2026-02-27 · closed · external user · 2 comments

### Is there any paramters to help to control playwright.

Hi. Still use this MCP in langGraph with react Agent to do the web accessibility test.

Always get exceptions like:

<img width="1386" height="288" alt="Image" src="https://github.com/user-attachments/assets/da5c2b0b-8276-4bc8-9cf4-e7e18ac3bfb7" />

I just wondering if it's possible to provide some parameter to control playwright. Like the timeout for waiting or navigating. Or enable headerless mode and other functions.

Thank you.

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/14) · 2025-09-25 · closed · external user · 2 comments

### disableAutoAttach's barrier is a snapshot, so attachments registered after it escape disablement

Split out of a Codex review finding on #182, where it was raised against that PR's `createTarget` retry. Filing separately because the gap predates the PR and fixing it means reworking `disableAutoAttach`, which #182 does not otherwise touch.

## The gap

`BrowserModel.disableAutoAttach()` waits for in-flight attachments before tearing sessions down:

```ts
disableAutoAttach(): Promise<void> {
  return this._runAutoAttachOperation(async () => {
    this._autoAttach = false;
    await Promise.all

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/184) · 2026-08-23 · closed · 1 comment

### Sync browser_take_screenshot with upstream Playwright MCP: add `webp` output format (blocked on Playwright bump)

## Summary

Automated upstream-monitoring run (2026-07-10) against [microsoft/playwright](https://github.com/microsoft/playwright), focused on Playwright MCP changes.

Baseline for this run was the last mirrored change, [#121](https://github.com/JustasMonkev/mcp-accessibility-scanner/pull/121) → upstream [microsoft/playwright#41676](https://github.com/microsoft/playwright/pull/41676) (commit `39a418a`, CDP `noDefaults`). One newer upstream MCP change is relevant to a tool this repo directly mirr

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/123) · 2026-07-10 · closed · 1 comment

### Track CDP noDefaults option for attached browsers

Upstream Playwright MCP opened https://github.com/microsoft/playwright/issues/41661 to expose `noDefaults` for `--cdp-endpoint` connections.

Upstream summary:

- `chromium.connectOverCDP()` now has a `noDefaults` option for CDP-like targets that reject default browser-context setup calls such as `Browser.setDownloadBehavior`.
- The upstream MCP/CLI config currently does not expose that option.
- The proposed upstream shape is a boolean config field plus a CLI flag, with isolated mode still expe

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/119) · 2026-07-07 · closed · 1 comment

## Most recent

### audit_screen_reader reports missing-accessible-name on links and buttons whose text is in a child element

Ran audit_screen_reader on a site I maintain and got 14 `missing-accessible-name` hits on links that are clearly named. Boiled it down to this:

```html
<a href="/docs"><strong>Docs</strong></a>
<button><span>Save</span></button>
```

Both get reported as "exposes no accessible name". Chrome's own accessibility tree names the link "Docs", and a plain `page.ariaSnapshot()` prints `- link "Docs"`. VoiceOver reads them fine.

What's going on: the tool uses `ariaSnapshot({ mode: 'ai' })`, and since 

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/195) · 2026-08-29 · closed · outside contributor · 0 comments

### Track upstream Playwright: [aria-hidden] annotations in AI aria snapshots (blocked on Playwright bump)

## Upstream

- microsoft/playwright PR #42268 — `fix(aria): annotate aria-hidden elements in AI snapshots` (merged 2026-08-20): https://github.com/microsoft/playwright/pull/42268
- Related upstream issue: https://github.com/microsoft/playwright/issues/42223
- Changes `packages/injected/src/ariaSnapshot.ts` (the injected AI-snapshot renderer).

### What changed upstream

`page.ariaSnapshot({ mode: 'ai' })` now marks elements that are visually present but excluded from ARIA queries (e.g. `getByRol

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/180) · 2026-08-22 · closed · 0 comments

### MCP 2026-07-28: drop the deprecated Roots dependency (only consumer is the session-log path)

Part of the [MCP 2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28/changelog) stateless migration ([SEP-2577](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2577)).

## Problem

Roots is now Deprecated, on a minimum twelve-month offramp. The suggested migration is to pass directories via tool parameters, resource URIs, or server configuration instead.

Roots is threaded through four files here:

- `src/mcp/server.ts:111-123` — on `initialized`, if the client

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/169) · 2026-08-09 · closed · 0 comments

### MCP 2026-07-28: `ping` heartbeat will close healthy connections once `ping` is removed

Part of the [MCP 2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28/changelog) stateless migration ([SEP-2575](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2575)).

## Problem

The revision removes `ping` from the protocol, along with `logging/setLevel` and `notifications/roots/list_changed`.

The heartbeat here does not merely use `ping` — it treats a failed ping as fatal:

- `src/mcp/server.ts:93-96` — started lazily on the first `tools/call` when `runHea

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/168) · 2026-08-09 · closed · 0 comments

### MCP 2026-07-28: browser state needs an explicit server-minted handle

Part of the [MCP 2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28/changelog) stateless migration ([SEP-2567](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2567)).

**This is the long pole of the migration.** Everything else in the stateless set is mechanical; this one is a design change.

## Problem

Unlike a stateless API wrapper, this server owns a real browser. State is built once at connection time and implicitly scoped to it:

- `src/browserServerBack

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/167) · 2026-08-09 · closed · 0 comments

### MCP 2026-07-28: HTTP transport is keyed on the removed `Mcp-Session-Id` header

Part of the [MCP 2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28/changelog) stateless migration ([SEP-2567](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2567)).

## Problem

Session identity is threaded through the entire HTTP request path:

- `src/mcp/http.ts:63` — `const streamableSessions = new Map<string, StreamableSessionInfo>()`
- `src/mcp/http.ts:71` and `src/mcp/http.ts:82` — routing branches on `!!req.headers['mcp-session-id']`
- `src/mcp/http.t

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/166) · 2026-08-09 · closed · 0 comments

### MCP 2026-07-28: handshake gate deadlocks every request once `initialize` is removed

Part of the [MCP 2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28/changelog) stateless migration ([SEP-2575](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2575)).

## Problem

Both request handlers in `createServer` block on `initializedPromise`:

- `src/mcp/server.ts:70-71` — the promise is created, with `initializedPromiseResolve` captured
- `src/mcp/server.ts:83` — `tools/list` does `await initializedPromise`
- `src/mcp/server.ts:91` — `tools/call` does

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/165) · 2026-08-09 · closed · 0 comments

### Upstream Playwright MCP: tear down CDP relay on unexpected browser disconnect (playwright#41966)

## Upstream change

- PR: [microsoft/playwright#41966 — `fix(mcp): reconnect to the browser after disconnect`](https://github.com/microsoft/playwright/pull/41966)
- Commit: [`2cc9f3e`](https://github.com/microsoft/playwright/commit/2cc9f3e) (Aug 3, 2026)
- Directory: `packages/playwright-core/src/tools/mcp/` — the upstream source this repository vendors as `src/`.

## What changed upstream

Playwright MCP now recovers when the browser connection drops. The change has three parts:

1. **`extensio

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/163) · 2026-08-08 · closed · 0 comments

### Sync with upstream Playwright MCP: clear stale dialog modal state when a dialog is closed out of band (blocked on Playwright bump for `dialogclosed`)

## Summary

Automated upstream-monitoring run (2026-07-30) against [microsoft/playwright](https://github.com/microsoft/playwright), focused on Playwright MCP changes.

Baseline for this run was the previous monitoring run (2026-07-22, [#134](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/134)), which reviewed upstream MCP PRs through [#41924](https://github.com/microsoft/playwright/pull/41924) (merged 2026-07-21). This run reviewed the seven MCP PRs merged upstream since then (

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/150) · 2026-07-30 · closed · 0 comments

### Sync with upstream Playwright MCP: make post-action settle delay configurable (timeouts.settle)

## Summary

Automated upstream-monitoring run (2026-07-22) against [microsoft/playwright](https://github.com/microsoft/playwright), focused on Playwright MCP changes.

Baseline for this run was the previous monitoring run (2026-07-10, [#123](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/123)), which reviewed upstream MCP changes through ~PR #41719 / #41680. This run reviewed the four MCP PRs merged upstream since then (2026-07-16 → 2026-07-21). **One** is relevant to a code pa

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/134) · 2026-07-22 · closed · 0 comments

### Track extension reconnect seed-tab handling

Upstream report: https://github.com/microsoft/playwright/issues/41864

## Upstream change

Playwright has a new reproducible extension-mode report covering two ways a reconnect can leave the spawned `connect.html` seed tab orphaned:

- the first post-reconnect call is `browser_tabs` with `action: "new"`, which always creates a second page;
- the seed page is attached to the wrong tab group or attached before it becomes debuggable, leaving the intended connection without an adopted page.

The rep

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/132) · 2026-07-19 · closed · 0 comments

### Track Playwright extension protocol v2 migration

Upstream Playwright PR: https://github.com/microsoft/playwright/pull/41857

Upstream change

The approved upstream PR removes extension protocol v1 from both the relay and browser extension. The extension connect page will reject clients requesting a protocol version below 2, and the relay will use the multi-tab v2 command and event model exclusively.

Why it matters here

This repository still sets VERSION = 1 in src/extension/protocol.ts and sends that value from src/extension/cdpRelay.ts when

[Read the thread](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues/130) · 2026-07-18 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/JustasMonkev/mcp-accessibility-scanner/issues).
