$npx -y skills add mgifford/accessibility-skills --skill opquast-digital-qualityApply the Opquast Digital Quality Framework (245 rules, 14 categories) when building, reviewing, or auditing websites and web applications. Use for web development quality assurance, accessibility compliance, security hardening, privacy implementation, e-commerce best practices,
| 1 | # Opquast Digital Quality Best Practices |
| 2 | |
| 3 | > **Canonical source**: `examples/OPQUAST_DIGITAL_QUALITY_BEST_PRACTICES.md` in `mgifford/ACCESSIBILITY.md` |
| 4 | > This skill is derived from that file. When in doubt, the example is authoritative. |
| 5 | |
| 6 | Apply the [Opquast Digital Quality Checklist](https://checklists.opquast.com/en/digital-quality/) |
| 7 | (Version 5, 2025-2030) when building or reviewing web projects. The framework |
| 8 | contains 245 rules across 14 categories covering content, privacy, e-commerce, |
| 9 | forms, accessibility, security, performance, and more. |
| 10 | |
| 11 | > Rules are published under [Creative Commons BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). |
| 12 | > Agents may reference and cite rule text; attribute Opquast and respect the |
| 13 | > ShareAlike licence — derivatives must use the same licence. |
| 14 | > See [opquast.com](https://www.opquast.com/) for the authoritative source. |
| 15 | |
| 16 | --- |
| 17 | |
| 18 | ## Severity Scale (this skill) |
| 19 | |
| 20 | | Level | Meaning | |
| 21 | |---|---| |
| 22 | | **Critical** | Completely blocks access, purchase, or task completion for a user group | |
| 23 | | **Serious** | Significantly impairs access or usability; workaround unreasonable to expect | |
| 24 | | **Moderate** | Creates friction; workaround available but burdensome | |
| 25 | | **Minor** | Best-practice gap; marginal impact | |
| 26 | |
| 27 | Category-level severity guidance: |
| 28 | - **Security** failures (HTTPS, headers, passwords): Critical to Serious |
| 29 | - **Forms** failures (labels, error handling): Critical to Serious |
| 30 | - **Navigation** failures (keyboard, focus): Critical to Serious |
| 31 | - **Images/Media** missing alt/captions: Critical |
| 32 | - **Privacy** policy missing: Serious |
| 33 | - **Presentation** contrast: Serious; zoom blocked: Serious |
| 34 | - **Content, Links, Identification**: Moderate to Minor in most cases |
| 35 | - **Server/Performance, Newsletter, Internationalisation**: Minor in most cases |
| 36 | |
| 37 | --- |
| 38 | |
| 39 | ## When to Use This Skill |
| 40 | |
| 41 | - Building a new website or web application |
| 42 | - Reviewing or auditing an existing site for quality |
| 43 | - Implementing accessibility, security, or privacy features |
| 44 | - Creating e-commerce flows, forms, or navigation systems |
| 45 | - Generating HTML/CSS code that must meet quality standards |
| 46 | |
| 47 | --- |
| 48 | |
| 49 | ## Quick Reference by Category (245 rules across 14 categories) |
| 50 | |
| 51 | | Category | Rules | Key Requirements | |
| 52 | |---|---|---| |
| 53 | | Content | 1–14 | Metadata (description + OG tags), explicit dates, `<abbr>` for acronyms, data tables for charts, labelled ads, moderation/abuse-report mechanisms | |
| 54 | | Personal Data / Privacy | 15–29 | Privacy link in footer, documented data access/modification process, no third-party-only login, generic auth-failure messages, `Referrer-Policy`, HTTPS for sensitive data, no sensitive data in URLs | |
| 55 | | E-Commerce | 30–68 | No pre-checked opt-ins, availability/delivery time/cost before checkout, explicit pricing incl. tax, two+ payment methods, order confirmation email, invoices online | |
| 56 | | Forms | 69–98 | `<label for="...">`, format/case-sensitivity hints, required indicated in text, password strength + show/hide, `aria-invalid`, `aria-describedby`, preserve data on error, correct `input type`/`autocomplete`, paste not blocked, disabled buttons not `aria-hidden` | |
| 57 | | Identification | 99–115 | Unique page titles (`Page \| Site`), `lang` attribute, favicon, address/phone in footer, two+ contact methods, response-time/hours stated | |
| 58 | | Images/Media | 116–127 | Meaningful `alt`, empty `alt=""` for decorative, image-link alt describes destination, transcripts + synchronised captions, no autoplay, pausable media | |
| 59 | | Internationalisation | 128–135 | International dialling codes, country in addresses, `hreflang`/visible language indicator, `lang` on `<html>` and inline changes, translated-language link labels | |
| 60 | | Links | 136–152 | Descriptive anchor text (no "click here"), `tel:` protocol, new-tab warning, file type + size for downloads, no broken internal links | |
| 61 | | Navigation | 153–172 | Public content without forced login, no nav pop-ups, homepage link, breadcrumbs, consistent nav placement, visible icon labels, skip links, visible `:focus-visible`, logical tab order, internal search, sitemap | |
| 62 | | Newsletter | 173–179 | Confirmed opt-in, unsubscribe link, one-click unsubscribe, archives online, stated frequency | |
| 63 | | Presentation | 180–196 | Consistent visual identity, no colour-only info, contrast 4.5:1 normal / 3:1 large text, meaning survives with styles off, 24×24px+ touch targets, no zoom blocking, responsive layout, print styles | |
| 64 | | Security | 197–217 | HTTPS everywhere + HSTS, no mixed content, self-service password reset, no plain-text passwords, `X-Content-Type-Options`, `X-Frame-Options`/`frame-ancestors`, CSP, SRI on third-party scripts, no exposed server versions, SPF/DKI |