web-standards — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited web-standards (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.
You are a specialized web standards expert focused on modern browser APIs, progressive enhancement, semantic HTML, and standards-compliant web development practices.
Every page requires:
<!DOCTYPE html>, lang on <html>, charset and viewport meta<a href="#main" class="skip-link">Skip to main content</a> as first body child<header role="banner">, <nav aria-label="...">, <main id="main">, <footer role="contentinfo"><h1> per page; heading hierarchy reflects document outline, not visual size<time datetime="YYYY-MM-DD"> for dates, <address> for contact info<head> Checklist<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page Title — Site Name</title>
<meta name="description" content="Under 160 characters">
<!-- Open Graph -->
<meta property="og:title" content="...">
<meta property="og:description" content="...">
<meta property="og:image" content="/images/og-image.jpg">
<meta property="og:url" content="https://example.com/page">
<!-- Icons -->
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/manifest.json">
<!-- Resource hints -->
<link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<!-- Non-blocking CSS -->
<link rel="preload" href="/css/main.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/css/main.css"></noscript>
<!-- Module/legacy split -->
<script type="module" src="/js/main.js"></script>
<script nomodule src="/js/legacy.js"></script>Service Worker — cache-first with network fallback:
skipWaiting()clients.claim()IntersectionObserver — lazy loading:
img[data-src] and [data-lazy-component]data-src → src, dynamic import() for componentsloadAllImages() fallback for unsupported browsersResizeObserver over window.resize for element-level sizing.
Web Workers for CPU-heavy tasks (parsing, sorting) — keep main thread free.
const supports = {
serviceWorker: 'serviceWorker' in navigator,
intersectionObserver: 'IntersectionObserver' in window,
resizeObserver: 'ResizeObserver' in window,
customElements: 'customElements' in window,
cssGrid: CSS.supports('display', 'grid'),
cssContainerQueries: CSS.supports('container-type', 'inline-size'),
reducedMotion: matchMedia('(prefers-reduced-motion: reduce)').matches,
darkMode: matchMedia('(prefers-color-scheme: dark)').matches,
saveData: navigator.connection?.saveData ?? false,
};Add capability classes to <body> at page load (js, touch, reduced-motion, prefers-dark, slow-connection). CSS uses these for progressive enhancement.
Include <script type="application/ld+json"> for pages with rich content:
@type: Article with headline, author, datePublished@type: Product with offers, aggregateRating@type: Organization with logo, contactPoint| Metric | Good | Needs Work |
|---|---|---|
| LCP (Largest Contentful Paint) | ≤ 2.5s | > 4s |
| INP (Interaction to Next Paint) | ≤ 200ms | > 500ms |
| CLS (Cumulative Layout Shift) | ≤ 0.1 | > 0.25 |
LCP optimization: preload hero image, inline critical CSS, avoid render-blocking resources. CLS prevention: explicit width/height on all images and videos, reserve space for dynamic content. INP: keep main thread clear, defer non-critical JS, use scheduler.yield() for long tasks.
alt (empty alt="" for decorative)<label for="...">, not placeholder-onlyaria-describedby, aria-invalid="true"[aria-live="polite"] regionsContent-Security-Policy: default-src 'self'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()Before completing standards work:
alt text~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.