Respira
Get free scanner

ADA & WCAG 2.2 Accessibility Report

George Nakashima Woodworkers - New Hope, Pennsylvania

https://nakashimawoodworkers.com/

Scanned 25 February 2026 · axe-core 4.11.1 · 42 checks passed · 35 issue instances

Live scan data
13
Accessibility Score
out of 100
1
Critical
17
Serious
17
Moderate
0
Minor
Respira Page Builder Intelligence is Respira's builder-awareness layer for WordPress (Elementor, Divi, Gutenberg, Bricks, and more). No supported WordPress page builder was detected in this scan, so prompts are generated from live DOM and WCAG findings, but still target the Respira plugin + MCP execution workflow.
critical
label Form elements must have labels
1 element
AI fix prompt
# Fix Accessibility Violation via Respira MCP

## SYSTEM CONTEXT
- This fix is executable only with **Respira for WordPress + Respira MCP** connected to the target site.
- Use **Respira MCP tools only** (`wordpress_*`). Do not suggest manual CMS edits or generic code patches.
- Respira safety flow is duplicate-first. Return the `respira_approvals_url` for user review.

## VIOLATION SUMMARY
**Page:** https://nakashimawoodworkers.com/ (ID: 67)
**Builder:** WordPress Editor
**Issue:** Form control missing a visible/associated label
**Impact:** CRITICAL
**WCAG:** WCAG 1.3.1 Info and Relationships / 3.3.2 Labels (Level A)

**Element:**
```html
<input type="search" id="s" name="s" value="" placeholder="">
```

**Location in Builder:** #s

---

## YOUR TASK
Fix this violation through Respira MCP and keep all unrelated content unchanged.

### Workflow Overview
1. Resolve `PAGE_ID` if unknown.
2. Extract builder content (or update module directly for supported builders).
3. Apply the minimal fix for this exact element.
4. Verify the updated field/value in extracted content.
5. Return a JSON summary with the approval URL.

---

## BUILDER CONTEXT: WordPress Editor

Use builder detection first, then follow extract/modify/inject flow.

**Primary tools:**
- `wordpress_list_pages({ search })`
- `wordpress_list_posts({ search })`
- `wordpress_get_builder_info({})`
- `wordpress_extract_builder_content({ builder, pageId })`
- `wordpress_inject_builder_content({ builder, pageId, content })`

If this is not a WordPress page connected through Respira plugin + MCP, this prompt is not executable.

---

## FIXING INSTRUCTIONS
### Step 0: Use Known Page ID
```javascript
const PAGE_ID = 67;
```

### Step 1: Extract builder/form structure
```javascript
const extracted = await wordpress_extract_builder_content({ builder: "wordpress", pageId: PAGE_ID });
```

### Step 2: Add visible/associated label
- Suggested label: `Search`
- Associate via label element, `for`/ID pair, or ARIA labeling as builder supports.

### Step 3: Inject and verify accessible name is present
```javascript
await wordpress_inject_builder_content({ builder: "wordpress", pageId: PAGE_ID, content: extracted.content || extracted });
```

---

## EXPECTED OUTPUT
```json
{
  "success": true,
  "violation_fixed": "missing-form-label",
  "page_id": 67,
  "duplicate_id": "<duplicate_id_from_response>",
  "changes_made": "<what was changed>",
  "approval_url": "<respira_approvals_url from MCP response>",
  "verification": "<how you verified the fix>"
}
```

---

## CRITICAL REMINDERS
- If Respira plugin or MCP is not connected, stop and report that setup is required.
- Prefer `moduleIdentifier.admin_label`, then `path`, then `type + match_content`.
- Preserve all unrelated builder data.
- Always include `approval_url` in final output.
Paste into Cursor, Claude, or Codex
serious
link-name Links must have discernible text
11 elements
AI fix prompt
# Fix Accessibility Violation via Respira MCP

## SYSTEM CONTEXT
- This fix is executable only with **Respira for WordPress + Respira MCP** connected to the target site.
- Use **Respira MCP tools only** (`wordpress_*`). Do not suggest manual CMS edits or generic code patches.
- Respira safety flow is duplicate-first. Return the `respira_approvals_url` for user review.

## VIOLATION SUMMARY
**Page:** https://nakashimawoodworkers.com/ (ID: 67)
**Builder:** WordPress Editor
**Issue:** Link has no accessible name
**Impact:** SERIOUS
**WCAG:** WCAG 2.4.4 Link Purpose / 4.1.2 Name, Role, Value (Level A)

**Element:**
```html
<a href="https://nakashimawoodworkers.com/">
```

**Location in Builder:** a:nth-child(2)

---

## YOUR TASK
Fix this violation through Respira MCP and keep all unrelated content unchanged.

### Workflow Overview
1. Resolve `PAGE_ID` if unknown.
2. Extract builder content (or update module directly for supported builders).
3. Apply the minimal fix for this exact element.
4. Verify the updated field/value in extracted content.
5. Return a JSON summary with the approval URL.

---

## BUILDER CONTEXT: WordPress Editor

Use builder detection first, then follow extract/modify/inject flow.

**Primary tools:**
- `wordpress_list_pages({ search })`
- `wordpress_list_posts({ search })`
- `wordpress_get_builder_info({})`
- `wordpress_extract_builder_content({ builder, pageId })`
- `wordpress_inject_builder_content({ builder, pageId, content })`

If this is not a WordPress page connected through Respira plugin + MCP, this prompt is not executable.

---

## FIXING INSTRUCTIONS
### Step 0: Use Known Page ID
```javascript
const PAGE_ID = 67;
```

### Step 1: Extract builder content
```javascript
const extracted = await wordpress_extract_builder_content({ builder: "wordpress", pageId: PAGE_ID });
const content = extracted.content || extracted;
```

### Step 2: Set descriptive link text
- Replace current empty/ambiguous label with: `Read more about nakashimawoodworkers.com`
- Keep destination URL unchanged unless broken.

### Step 3: Inject back
```javascript
await wordpress_inject_builder_content({ builder: "wordpress", pageId: PAGE_ID, content });
```

---

## EXPECTED OUTPUT
```json
{
  "success": true,
  "violation_fixed": "non-descriptive-link-text",
  "page_id": 67,
  "duplicate_id": "<duplicate_id_from_response>",
  "changes_made": "<what was changed>",
  "approval_url": "<respira_approvals_url from MCP response>",
  "verification": "<how you verified the fix>"
}
```

---

## CRITICAL REMINDERS
- If Respira plugin or MCP is not connected, stop and report that setup is required.
- Prefer `moduleIdentifier.admin_label`, then `path`, then `type + match_content`.
- Preserve all unrelated builder data.
- Always include `approval_url` in final output.
Paste into Cursor, Claude, or Codex
serious
color-contrast Elements must meet minimum color contrast ratio thresholds
5 elements
AI fix prompt
# Fix Accessibility Violation via Respira MCP

## SYSTEM CONTEXT
- This fix is executable only with **Respira for WordPress + Respira MCP** connected to the target site.
- Use **Respira MCP tools only** (`wordpress_*`). Do not suggest manual CMS edits or generic code patches.
- Respira safety flow is duplicate-first. Return the `respira_approvals_url` for user review.

## VIOLATION SUMMARY
**Page:** https://nakashimawoodworkers.com/ (ID: 67)
**Builder:** WordPress Editor
**Issue:** Insufficient color contrast
**Impact:** SERIOUS
**WCAG:** WCAG 1.4.3 Contrast (Minimum) (Level AA)

**Element:**
```html
<a href="https://nakashimawoodworkers.com">GEORGE NAKASHIMA WOODWORKERS</a>
```

**Location in Builder:** .row:nth-child(2) > .col:nth-child(1) > a

---

## YOUR TASK
Fix this violation through Respira MCP and keep all unrelated content unchanged.

### Workflow Overview
1. Resolve `PAGE_ID` if unknown.
2. Extract builder content (or update module directly for supported builders).
3. Apply the minimal fix for this exact element.
4. Verify the updated field/value in extracted content.
5. Return a JSON summary with the approval URL.

---

## BUILDER CONTEXT: WordPress Editor

Use builder detection first, then follow extract/modify/inject flow.

**Primary tools:**
- `wordpress_list_pages({ search })`
- `wordpress_list_posts({ search })`
- `wordpress_get_builder_info({})`
- `wordpress_extract_builder_content({ builder, pageId })`
- `wordpress_inject_builder_content({ builder, pageId, content })`

If this is not a WordPress page connected through Respira plugin + MCP, this prompt is not executable.

---

## FIXING INSTRUCTIONS
### Step 0: Use Known Page ID
```javascript
const PAGE_ID = 67;
```

### Step 1: Extract builder content and locate the failing text node
```javascript
const extracted = await wordpress_extract_builder_content({ builder: "wordpress", pageId: PAGE_ID });
```

### Step 2: Update text/background color fields on that module/block
- Current: `#9b9b9b` on `#f2f2f0` (2.47:1)
- Required: `NaN:1`
- Suggested text color: `#656565`

### Step 3: Inject updated content and verify
```javascript
await wordpress_inject_builder_content({ builder: "wordpress", pageId: PAGE_ID, content: extracted.content || extracted });
```

---

## EXPECTED OUTPUT
```json
{
  "success": true,
  "violation_fixed": "color-contrast",
  "page_id": 67,
  "duplicate_id": "<duplicate_id_from_response>",
  "changes_made": "<what was changed>",
  "approval_url": "<respira_approvals_url from MCP response>",
  "verification": "<how you verified the fix>"
}
```

---

## CRITICAL REMINDERS
- If Respira plugin or MCP is not connected, stop and report that setup is required.
- Prefer `moduleIdentifier.admin_label`, then `path`, then `type + match_content`.
- Preserve all unrelated builder data.
- Always include `approval_url` in final output.
Paste into Cursor, Claude, or Codex
serious
aria-input-field-name ARIA input fields must have an accessible name
1 element
AI fix prompt
# Fix Accessibility Violation via Respira MCP

## SYSTEM CONTEXT
- This fix is executable only with **Respira for WordPress + Respira MCP** connected to the target site.
- Use **Respira MCP tools only** (`wordpress_*`). Do not suggest manual CMS edits or generic code patches.
- Respira safety flow is duplicate-first. Return the `respira_approvals_url` for user review.

## VIOLATION SUMMARY
**Page:** https://nakashimawoodworkers.com/ (ID: 67)
**Builder:** WordPress Editor
**Issue:** Accessibility violation detected
**Impact:** SERIOUS
**WCAG:** WCAG 2.2 (See violation details)

**Element:**
```html
<div class="slick-track" style="opacity: 1; width: 8068px;" role="listbox">
```

**Location in Builder:** .slick-track

---

## YOUR TASK
Fix this violation through Respira MCP and keep all unrelated content unchanged.

### Workflow Overview
1. Resolve `PAGE_ID` if unknown.
2. Extract builder content (or update module directly for supported builders).
3. Apply the minimal fix for this exact element.
4. Verify the updated field/value in extracted content.
5. Return a JSON summary with the approval URL.

---

## BUILDER CONTEXT: WordPress Editor

Use builder detection first, then follow extract/modify/inject flow.

**Primary tools:**
- `wordpress_list_pages({ search })`
- `wordpress_list_posts({ search })`
- `wordpress_get_builder_info({})`
- `wordpress_extract_builder_content({ builder, pageId })`
- `wordpress_inject_builder_content({ builder, pageId, content })`

If this is not a WordPress page connected through Respira plugin + MCP, this prompt is not executable.

---

## FIXING INSTRUCTIONS
### Step 0: Use Known Page ID
```javascript
const PAGE_ID = 67;
```

### Step 1: Determine builder + exact module
```javascript
await wordpress_get_builder_info({});
const extracted = await wordpress_extract_builder_content({ builder: "wordpress", pageId: PAGE_ID });
```

### Step 2: Apply minimal fix only for selector:
```
.slick-track
```

### Step 3: Inject updated content and return approval URL
```javascript
await wordpress_inject_builder_content({ builder: "wordpress", pageId: PAGE_ID, content: extracted.content || extracted });
```

---

## EXPECTED OUTPUT
```json
{
  "success": true,
  "violation_fixed": "aria-input-field-name",
  "page_id": 67,
  "duplicate_id": "<duplicate_id_from_response>",
  "changes_made": "<what was changed>",
  "approval_url": "<respira_approvals_url from MCP response>",
  "verification": "<how you verified the fix>"
}
```

---

## CRITICAL REMINDERS
- If Respira plugin or MCP is not connected, stop and report that setup is required.
- Prefer `moduleIdentifier.admin_label`, then `path`, then `type + match_content`.
- Preserve all unrelated builder data.
- Always include `approval_url` in final output.
Paste into Cursor, Claude, or Codex
moderate
region All page content should be contained by landmarks
13 elements
AI fix prompt
# Fix Accessibility Violation via Respira MCP

## SYSTEM CONTEXT
- This fix is executable only with **Respira for WordPress + Respira MCP** connected to the target site.
- Use **Respira MCP tools only** (`wordpress_*`). Do not suggest manual CMS edits or generic code patches.
- Respira safety flow is duplicate-first. Return the `respira_approvals_url` for user review.

## VIOLATION SUMMARY
**Page:** https://nakashimawoodworkers.com/ (ID: 67)
**Builder:** WordPress Editor
**Issue:** Accessibility violation detected
**Impact:** MODERATE
**WCAG:** WCAG 2.2 (See violation details)

**Element:**
```html
<a href="https://nakashimawoodworkers.com/furniture/" class="no-ajaxify">Furniture</a>
```

**Location in Builder:** #menu-item-70 > .no-ajaxify

---

## YOUR TASK
Fix this violation through Respira MCP and keep all unrelated content unchanged.

### Workflow Overview
1. Resolve `PAGE_ID` if unknown.
2. Extract builder content (or update module directly for supported builders).
3. Apply the minimal fix for this exact element.
4. Verify the updated field/value in extracted content.
5. Return a JSON summary with the approval URL.

---

## BUILDER CONTEXT: WordPress Editor

Use builder detection first, then follow extract/modify/inject flow.

**Primary tools:**
- `wordpress_list_pages({ search })`
- `wordpress_list_posts({ search })`
- `wordpress_get_builder_info({})`
- `wordpress_extract_builder_content({ builder, pageId })`
- `wordpress_inject_builder_content({ builder, pageId, content })`

If this is not a WordPress page connected through Respira plugin + MCP, this prompt is not executable.

---

## FIXING INSTRUCTIONS
### Step 0: Use Known Page ID
```javascript
const PAGE_ID = 67;
```

### Step 1: Determine builder + exact module
```javascript
await wordpress_get_builder_info({});
const extracted = await wordpress_extract_builder_content({ builder: "wordpress", pageId: PAGE_ID });
```

### Step 2: Apply minimal fix only for selector:
```
#menu-item-70 > .no-ajaxify
```

### Step 3: Inject updated content and return approval URL
```javascript
await wordpress_inject_builder_content({ builder: "wordpress", pageId: PAGE_ID, content: extracted.content || extracted });
```

---

## EXPECTED OUTPUT
```json
{
  "success": true,
  "violation_fixed": "region",
  "page_id": 67,
  "duplicate_id": "<duplicate_id_from_response>",
  "changes_made": "<what was changed>",
  "approval_url": "<respira_approvals_url from MCP response>",
  "verification": "<how you verified the fix>"
}
```

---

## CRITICAL REMINDERS
- If Respira plugin or MCP is not connected, stop and report that setup is required.
- Prefer `moduleIdentifier.admin_label`, then `path`, then `type + match_content`.
- Preserve all unrelated builder data.
- Always include `approval_url` in final output.
Paste into Cursor, Claude, or Codex
Automated tools detect approximately 57% of WCAG violations. Manual review is always required.

Want these fixes applied safely?

Connect Respira for WordPress

Respira connects Cursor, Claude Code, and Codex to your WordPress site with builder-aware intelligence. Your AI agent can apply accessibility fixes on a safe draft for Not detected workflows.