opquast-digital-quality — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited opquast-digital-quality (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Apply the Opquast Digital Quality Checklist (Version 5, 2025-2030) when building or reviewing web projects. The framework contains 245 rules across 14 categories covering content, privacy, e-commerce, forms, accessibility, security, performance, and more.
Rules are published under Creative Commons BY-SA 4.0. Agents may reference and cite rule text; attribute Opquast and respect the ShareAlike licence — derivatives must use the same licence. See opquast.com for the authoritative source.
Opquast covers 245 rules across 14 categories. Use this scale when reporting issues found during review:
| Level | Meaning |
|---|---|
| Critical | Completely blocks access, purchase, or task completion for a user group |
| Serious | Significantly impairs access or usability; workaround unreasonable to expect |
| Moderate | Creates friction; workaround available but burdensome |
| Minor | Best-practice gap; marginal impact |
Category-level severity guidance:
| Category | Key Requirements | |
|---|---|---|
| Content | <meta name="description"> + OG tags, explicit dates, <abbr> for acronyms, data tables for charts | |
| Privacy | Privacy link in footer, generic auth-failure messages, HTTPS for sensitive data, no sensitive data in URLs | |
| E-Commerce | No pre-checked opt-ins, availability before checkout, explicit pricing, two+ payment methods | |
| Forms | <label for="...">, required attribute (not aria-required alone), aria-invalid, aria-describedby, correct input type, autocomplete | |
| Identification | Unique page titles (`Page \ | Site), lang` attribute, favicon, two+ contact methods |
| Images/Media | Meaningful alt, empty alt="" for decorative, captions + transcripts for AV, no autoplay | |
| Internationalisation | lang on <html>, hreflang for translations, international dialling codes | |
| Links | Descriptive anchor text (no "click here"), tel: protocol, file type + size for downloads | |
| Navigation | Skip links, visible :focus-visible, logical tab order, consistent nav placement, breadcrumbs | |
| Presentation | Contrast 4.5:1 normal / 3:1 large text, no colour-only info, no blocked zoom, responsive, print styles | |
| Security | HTTPS everywhere, HSTS, CSP, SRI, no plain-text passwords, security headers | |
| Server/Performance | robots.txt, sitemap.xml, gzip/Brotli, cache headers, minified CSS/JS | |
| Structure/Code | UTF-8, unique IDs, no meta refresh, tagged PDFs, heading hierarchy h1>h2>h3 | |
| Newsletter | Confirmed opt-in, unsubscribe link, archives online, state frequency |
Not all 14 categories apply to every project:
Navigation, Presentation, Security, Server/Performance, Structure/Code
Internationalisation (multi-language), Privacy (user accounts/data collection)
Read the relevant reference file for the full rules with code examples:
Images/Media, Internationalisation, Links, Navigation): See references/rules-part1.md
Structure/Code): See references/rules-part2.md
When generating or reviewing code, apply rules as implementation requirements:
proper alt text
print styles
caching
After implementation, verify against applicable rules. Common automated checks:
alt attributes<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="Page description here." />
<meta property="og:title" content="Page Title | Site Name" />
<meta property="og:description" content="Page description for sharing." />
<title>Page Title | Site Name</title>
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
</head>
<body>
<a href="#main" class="skip-link">Skip to main content</a>
<nav aria-label="Main navigation"><!-- ... --></nav>
<main id="main"><!-- ... --></main>
<footer>
<a href="/privacy">Privacy Policy</a>
<a href="/terms">Terms of Use</a>
</footer>
</body>
</html>Use native required on native inputs. aria-required is redundant when required is present and should be omitted to avoid accessibility tree noise. Use aria-required only on custom widgets (role="combobox" etc.).
<label for="email">
Email address <span aria-hidden="true">*</span>
<span class="hint" id="email-hint">Required. Example: [email protected]</span>
</label>
<input id="email" type="email" autocomplete="email"
required aria-describedby="email-hint" />Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: default-src 'self';
Referrer-Policy: strict-origin-when-cross-origin:focus-visible {
outline: 3px solid #005fcc;
outline-offset: 2px;
}
body {
color: #1a1a1a; /* ~16:1 contrast on white */
background: #ffffff;
}@media print {
nav, header, footer, .sidebar, .no-print { display: none; }
body { font-size: 12pt; color: #000; }
a[href]::after { content: " (" attr(href) ")"; }
}Opquast complements WCAG 2.2 rather than replacing it. Key mappings:
| Opquast Rules | WCAG Criteria |
|---|---|
116 (decorative images alt="") | 1.1.1 Non-text Content (A) |
| 117-118 (meaningful alt text) | 1.1.1 Non-text Content (A) |
| 121-122 (transcripts, captions) | 1.2.2, 1.2.3, 1.2.5 |
| 124-127 (no autoplay, pausable) | 1.4.2, 2.2.2 |
| 131-132 (lang attribute) | 3.1.1, 3.1.2 |
| 164 (skip links) | 2.4.1 Bypass Blocks (A) |
| 165 (focus visible) | 2.4.7, 2.4.11 Focus Visible/Appearance |
| 166 (keyboard operable) | 2.1.1 Keyboard (A) |
| 167 (logical tab order) | 2.4.3 Focus Order (A) |
| 181 (not colour alone) | 1.4.1 Use of Color (A) |
| 182 (contrast) | 1.4.3, 1.4.11 Contrast (AA) |
| 186 (touch targets 24×24px min) | 2.5.8 Target Size Minimum (AA, WCAG 2.2) |
| 193 (no zoom block) | 1.4.4 Resize Text (AA) |
| 69-70 (labels, instructions) | 1.3.1, 3.3.2 |
| 79-80 (error identification) | 3.3.1, 3.3.3 |
Use Opquast as a holistic quality baseline and layer WCAG testing for full accessibility compliance.
Several Opquast categories directly align with SUSTAINABILITY.md and the Web Sustainability Guidelines:
directly reduce data transfer and energy per page view
reduce need for separate mobile sites
When applying Opquast Server/Performance rules, cross-reference with SUSTAINABILITY.md for additional guidance on carbon-aware delivery and asset optimisation.
Apply to every project; skip categories not in scope:
Content & Identification
<meta name="description"> and OG tags on every page<title> in Page | Site format<html lang="..."> present and correct<link rel="icon"> presentForms
<label>required used; aria-required omitted on native inputsaria-invalid="true" set on invalid fieldsaria-describedbyinput type and autocomplete valuesImages & Media
alt=""altNavigation & Keyboard
:focus-visible styles defined; outline: none not used without replacementPresentation
user-scalable=no and maximum-scale not usedSecurity
X-Content-Type-Options: nosniff presentX-Frame-Options or CSP frame-ancestors presentServer/Performance
robots.txt presentsitemap.xml presentStructure/Code
<meta charset="UTF-8"> in every <head>id attributes within a page<meta http-equiv="refresh">h1 > h2 > h3, no skips)<caption> and <th scope="...">See WCAG relationship table above. Opquast covers all of WCAG 2.2 AA and extends well beyond it into security, privacy, e-commerce, and performance.
id: opquast, id: opquast-checklistStandards horizon: These rules target WCAG 2.2 AA alongside Opquast v5 (2025-2030). WCAG 3.0 is in development. Monitor: <https://www.w3.org/TR/wcag-3.0/>
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.