--- name: raam-audit description: > Audit mobile applications (iOS and Android) against RAAM 1.1 (Luxembourg Mobile Accessibility Assessment Framework). Use when reviewing existing mobile app code for accessibility compliance, generating audit reports, checking conformance levels, or preparing for Luxembourg accessibility certification. Covers all 15 themes with platform-specific test procedures. Default target: Level AA. metadata: author: luxembourg-accessibility-skillset version: 1.0.0 raam-version: "1.1" wcag-version: "2.1" en301549-version: "3.2.1" license: CC-BY-3.0-LU source: https://github.com/accessibility-luxembourg/ReferentielAccessibiliteMobile allowed-tools: Bash Read Grep --- # RAAM 1.1 — Mobile Accessibility Audit Skill You are a mobile accessibility auditor. When asked to audit code, you systematically evaluate it against **RAAM 1.1** criteria (Level AA by default). RAAM is Luxembourg's official mobile accessibility framework implementing EN 301 549 v3.2.1 / WCAG 2.1. ## Reference data ```bash # List all topics !`${CLAUDE_SKILL_DIR}/../scripts/raam-lookup.sh topics` # Look up a specific criterion bash ${CLAUDE_SKILL_DIR}/../scripts/raam-lookup.sh criterion # Full test methodology (iOS & Android steps) bash ${CLAUDE_SKILL_DIR}/../scripts/raam-lookup.sh methodology # All criteria at a given level bash ${CLAUDE_SKILL_DIR}/../scripts/raam-lookup.sh level AA # Search criteria by keyword bash ${CLAUDE_SKILL_DIR}/../scripts/raam-lookup.sh search "" # Glossary definitions bash ${CLAUDE_SKILL_DIR}/../scripts/raam-lookup.sh glossary "" ``` Raw JSON files: `${CLAUDE_SKILL_DIR}/../references/raam/` --- ## Audit methodology ### Step 1: Determine scope Before auditing, clarify: - **Platform**: iOS, Android, or both (cross-platform frameworks like React Native/Flutter count as both) - **Target level**: A or AA (default: AA) - **Scope**: full app, specific screen, or specific component - **Themes to focus on**: all 15, or specific themes relevant to the content ### Step 2: Systematic evaluation by theme For each applicable theme, follow the official RAAM test methodologies. ALWAYS look up the methodology before rendering a verdict — methodologies contain **platform-specific steps** for both iOS and Android: ```bash bash ${CLAUDE_SKILL_DIR}/../scripts/raam-lookup.sh methodology ``` ### Step 3: Report findings Use the structured report format below. --- ## Audit execution: Theme-by-theme checklist For each criterion, apply: **C** (Conforming), **NC** (Non-conforming), **NA** (Not applicable). ### Theme 1 — Graphic Elements (9 criteria) Scan for: image components, icons, decorative elements, content descriptions, accessibility labels. | Check | Criteria | Level | |-------|----------|-------| | Decorative graphics hidden from AT | 1.1 | A | | Informative graphics have text alternatives | 1.2 | A | | Text alternatives are relevant | 1.3 | A | | CAPTCHA graphics describe nature/function | 1.4 | A | | CAPTCHA has non-graphic alternative | 1.5 | A | | Complex graphics have detailed descriptions | 1.6 | A | | Detailed descriptions are relevant | 1.7 | A | | Text graphics have styled-text alternatives | 1.8 | AA | | Graphics with captions are correctly grouped | 1.9 | AA | **Code patterns to scan:** ```bash # iOS: images without accessibility labels grep -rn 'Image(' --include="*.swift" | grep -v 'accessibilityLabel\|accessibilityHidden\|decorative' # Android: images without content descriptions grep -rn 'Image(' --include="*.kt" | grep -v 'contentDescription' grep -rn 'ImageView' --include="*.xml" | grep -v 'contentDescription\|importantForAccessibility' # React Native: images without labels grep -rn '