Install
$ agentstack add skill-mteelokee-rgaa-accessibility-audit-rgaa-multimedia ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
RGAA Multimedia Accessibility Audit (Theme 4)
Audits a web page against the 13 criteria of RGAA v4.1.2 Theme 4: Multimedia.
Audit procedure
Step 1: Gather multimedia data
(() => {
const media = { videos: [], audios: [], objects: [], embeds: [], iframes: [] };
document.querySelectorAll('video').forEach(el => {
const tracks = Array.from(el.querySelectorAll('track')).map(t => ({
kind: t.kind, srclang: t.srclang, label: t.label, src: t.src?.substring(0, 100)
}));
media.videos.push({
src: el.src?.substring(0, 100) || el.querySelector('source')?.src?.substring(0, 100),
controls: el.controls,
autoplay: el.autoplay,
muted: el.muted,
tracks: tracks,
ariaLabel: el.getAttribute('aria-label'),
title: el.getAttribute('title'),
hasTranscriptLink: !!el.parentElement?.querySelector('a[href*="transcript"], a[href*="transcription"]')
});
});
document.querySelectorAll('audio').forEach(el => {
media.audios.push({
src: el.src?.substring(0, 100) || el.querySelector('source')?.src?.substring(0, 100),
controls: el.controls,
autoplay: el.autoplay,
ariaLabel: el.getAttribute('aria-label'),
title: el.getAttribute('title')
});
});
// Embedded media (YouTube, Vimeo, etc.)
document.querySelectorAll('iframe').forEach(el => {
const src = el.src || '';
if (src.match(/youtube|vimeo|dailymotion|soundcloud|spotify/i)) {
media.iframes.push({
src: src.substring(0, 150),
title: el.getAttribute('title'),
ariaLabel: el.getAttribute('aria-label')
});
}
});
document.querySelectorAll('object[type^="video"], object[type^="audio"], embed[type^="video"], embed[type^="audio"]').forEach(el => {
media.objects.push({
tag: el.tagName.toLowerCase(),
type: el.type,
ariaLabel: el.getAttribute('aria-label')
});
});
return JSON.stringify(media, null, 2);
})()
Step 2: Evaluate criteria
Criterion 4.1 – Pre-recorded temporal media has a text transcription (if needed). Check that videos and audio have a nearby transcription or link to one.
Criterion 4.2 – Transcription is relevant. If a transcription exists, it should accurately represent the content.
Criterion 4.3 – Pre-recorded synchronized media has subtitles. Check ` or ` on video elements.
Criterion 4.4 – Subtitles are relevant. Subtitles must be synchronized and accurately represent dialogue and important sounds.
Criterion 4.5 – Pre-recorded media has audio description (if needed). Check for `` or an alternative audio-described version.
Criterion 4.6 – Audio description is relevant. Must accurately describe important visual elements.
Criterion 4.7 – Temporal media is clearly identified. Media must have a title or label identifying its content.
Criterion 4.8 – Non-temporal media has an alternative. SVG animations, canvas animations, etc., must have text alternatives.
Criterion 4.9 – Non-temporal media alternative is relevant.
Criterion 4.10 – Auto-playing sound is controllable. Any sound playing automatically must have a mechanism to stop/pause or control volume, accessible within the first 3 elements of the page.
Criterion 4.11 – Temporal media is controllable by keyboard. Play, pause, volume, subtitles toggle, audio description toggle must be keyboard-accessible.
Criterion 4.12 – Non-temporal media is keyboard-controllable.
Criterion 4.13 – Media is compatible with assistive technologies. Media player controls must have accessible names and roles.
Step 3: Generate report
For each media element found, evaluate all applicable criteria. Many criteria (relevance of transcription, audio description content) require human review — flag these as requiring manual verification.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: MTeelokee
- Source: MTeelokee/rgaa-accessibility-audit
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.