Skip to main content

Public compliance tracker

GraphCentric coverage against The Website Specification checklist

This page tracks GraphCentric's public website and platform capabilities against the 137 topics in The Website Specification checklist. The checklist priority is the source site's label. The GraphCentric priority is our mission fit: durable semantic resources, governed data access, agent readiness, and trustworthy public web delivery.

Status labels are intentionally pragmatic: covered means implemented or structurally present; partial means useful platform support exists but needs hardening, site-wide rollout, or verification; gap means relevant but not yet implemented; not applicable means the topic does not fit the current public site or product surface.

137Checklist topics tracked
33Covered now
37Partial coverage
31Relevant gaps
36Not applicable or deprioritised

Foundations

The HTML, head, and document basics every page needs.

TopicChecklistStatusGC priorityEvidence and next action
The HTML doctypeRequiredCoveredHighPublic template starts with the HTML5 doctype.
The lang attribute on htmlRequiredCoveredHighPublic template sets lang="en". Revisit when localisation begins.
meta charsetRequiredCoveredHighPublic template declares UTF-8 early in the head.
meta viewportRequiredCoveredHighPublic template uses device-width viewport and does not disable scaling.
The title elementRequiredPartialHighTemplate provides a title fallback. Need audit of per-resource unique titles.
meta name="description"RecommendedPartialHighTemplate has fallback and resource-driven description support. Need page uniqueness audit.
Canonical URLRecommendedPartialMission criticalGraphCentric models canonical and concrete resources explicitly. Need site-wide canonical link audit.
Favicons and app iconsRecommendedCoveredMediumPublic template advertises SVG and ICO favicons, an Apple touch icon, a web app manifest, and a maskable app icon generated from the GraphCentric octopus asset.
meta name="theme-color"RecommendedCoveredLowPublic template includes dark and light theme-color metadata.
meta name="color-scheme"RecommendedCoveredLowPublic template declares support for dark and light colour schemes.
Open Graph protocolRecommendedPartialMediumPublic template now emits OG site name, type, title, and description. Add per-page og:url and og:image next.
Feed discovery with rel="alternate"RecommendedPartialHighBlog advertises RSS through link sidecars. Confirm every feed is advertised from relevant pages.
Feed content hygieneRecommendedPartialMediumRSS exists. Need validation, stable GUID review, self link, and cadence metadata.
Popover APIRecommendedDeprioritisedLowUseful for future menus or dialogs, but not central to current platform capability.

SEO

Search visibility, robots, sitemaps, canonicals, and structured data.

TopicChecklistStatusGC priorityEvidence and next action
robots.txtRecommendedCoveredHighPublic resources include templated robots.txt with sitemap discovery.
XML sitemapsRecommendedCoveredHighMothership serves dynamic sitemap resources from authorised web resources.
Sitemap index filesRecommendedNot applicableLowNot needed at current site scale. Revisit if content volume grows significantly.
Image and video sitemap extensionsOptionalDeprioritisedLowNo media-heavy SEO surface yet.
URL structureRecommendedCoveredMission criticalResource URIs are explicit, stable, and treated as public contracts.
RedirectsRequiredPartialHighRedirect resources are supported and root redirects to canonical index. Need redirect-policy audit.
Server-side renderingRecommendedCoveredMission criticalMothership renders primary HTML server-side from RDF state and templates.
Soft 404sAvoidPartialHighUnauthorized internal resources return 404. Need custom error pages and crawler audit.
Meta robots and X-Robots-TagRequiredGapHighAdd explicit indexing policy for public, staging, internal, and private resources.
Heading hierarchyRequiredPartialHighPages use semantic headings. Need automated or manual outline audit.
Internal linkingRecommendedPartialHighNavigation, footer, resource alternates, and deck links exist. Need link graph review.
Structured dataRecommendedCoveredMission criticalRDF and JSON-LD are core platform features; public template embeds JSON-LD when available.
BreadcrumbsRecommendedGapMediumAdd visible breadcrumbs and BreadcrumbList JSON-LD where hierarchy matters.
IndexNowOptionalDeprioritisedLowNot needed until publication velocity justifies push recrawl.

Accessibility

WCAG-aligned rules so people of all abilities can use the site.

TopicChecklistStatusGC priorityEvidence and next action
Colour contrastRequiredPartialHighDesign uses high-contrast dark surfaces. Need automated contrast audit across themes.
Image alt textRequiredPartialHighNeed image inventory and alt text audit for public assets.
Form labelsRequiredPartialHighForms exist in public and authenticated surfaces. Need label association audit.
Keyboard navigationRequiredPartialHighNative links and buttons are used in many areas. Need keyboard-only traversal test.
Visible focus indicatorsRequiredCoveredHighSite CSS includes explicit high-contrast :focus-visible outlines for controls.
Skip linksRequiredCoveredHighPublic template includes a skip-to-main link targeting the main content region.
Semantic HTML and landmarksRequiredCoveredHighTemplates use header, nav, main, footer, sections, articles, and real controls.
ARIA first rule of ARIARecommendedPartialHighNative elements are preferred. Need ARIA usage review for interactive pieces.
Descriptive link textRequiredPartialHighMost navigation labels are descriptive. Need public content audit for vague links.
Empty links and buttonsAvoidPartialHighIcon SVGs are marked decorative in places. Need empty interactive control audit.
Accessible form errorsRequiredGapHighStandardise form error markup and announcements for update failures.
Document and parts languageRequiredCoveredHighDocument language is set. Inline language support becomes relevant with multilingual content.
Reduced motionRequiredCoveredMediumSite CSS respects prefers-reduced-motion by disabling smooth scrolling, transitions, and animations.
Accessibility overlaysAvoidCoveredHighNo accessibility overlay is used or planned.
Captions and transcriptsRequiredNot applicableMediumNo primary audio or video content currently. Required if talks or video are published.
Accessible data tablesRequiredPartialHighThis report uses real tables. Need audit of all data-table-like layouts.
Touch target sizeRequiredPartialHighPrimary controls are large. Need mobile touch target audit across pages.
Hidden until foundRecommendedDeprioritisedLowUseful for future dense docs, not required for the current public site.
Mobile-friendly form inputsRecommendedPartialMediumNeed form input type, inputmode, enterkeyhint, and font-size audit.
Native interactive elementsRecommendedCoveredHighNavigation and theme controls use anchors, buttons, details, and summary.
CSS state and relational selectorsRecommendedDeprioritisedLowGood progressive enhancement, but not mission-critical now.

Security

Headers, transport, and policies that keep visitors safe.

TopicChecklistStatusGC priorityEvidence and next action
HTTPS and TLSRequiredCoveredMission criticalCaddy terminates HTTPS for local and production-style environments.
HSTSRequiredGapHighAdd production HSTS policy deliberately after confirming preload/subdomain commitments.
Mixed content and upgrade-insecure-requestsRecommendedPartialHighSite uses HTTPS origins. Add CSP safety net and scan for HTTP subresources.
Content Security PolicyRecommendedGapHighDefine CSP compatible with inline JSON-LD, templates, and current scripts.
security.txtRecommendedGapMediumPublish /.well-known/security.txt with contact and policy.
X-Content-Type-OptionsRequiredGapHighAdd nosniff at the edge or runtime for relevant responses.
Clickjacking protectionRequiredGapHighAdd CSP frame-ancestors and legacy fallback if needed.
Cross-origin isolationRecommendedDeprioritisedLowNot required unless we need SharedArrayBuffer or stricter isolation features.
Referrer-PolicyRecommendedGapHighAdd strict-origin-when-cross-origin unless a stricter policy is chosen.
Permissions-PolicyRecommendedGapMediumDeny unused powerful browser features by default.
Subresource IntegrityRecommendedNot applicableMediumMost assets are self-hosted. Required if third-party JS or CSS is introduced.
Cookie attributesRequiredPartialMission criticalAuthentication uses Keycloak and Mothership flows. Need cookie attribute audit across auth/session cookies.
DNS CAA recordsRecommendedGapMediumDNS-level production task outside the app repo.
DNSSECOptionalDeprioritisedLowDesirable defence in depth, but dependent on registrar and operational appetite.

Well-Known URIs

Standard agreed-upon paths under /.well-known/.

TopicChecklistStatusGC priorityEvidence and next action
Well-known URIsRecommendedPartialHighPlatform can serve explicit resources. Need a deliberate well-known publication set.
change-passwordOptionalGapMediumRelevant because the site has login. Add redirect to Keycloak/account password flow.
webauthnOptionalNot applicableLowNo related-origin passkey deployment yet.
openid-configurationOptionalNot applicableLowGraphCentric relies on Keycloak rather than acting as the OIDC provider at this host.
api-catalogRecommendedGapMission criticalStrong fit for resource and update discovery. Publish Linkset catalog for public APIs/resources.
webfingerOptionalDeprioritisedLowNo Fediverse account discovery use case yet.
apple-app-site-associationOptionalNot applicableLowNo native iOS app integration yet.
assetlinks.jsonOptionalNot applicableLowNo native Android app integration yet.
nodeinfoOptionalDeprioritisedLowNo federated platform node stats use case yet.
traffic-adviceOptionalDeprioritisedLowConsider only if private prefetch proxy traffic becomes material.

Agent Readiness

Things that make a site legible to AI agents and crawlers.

TopicChecklistStatusGC priorityEvidence and next action
Agent readinessRecommendedCoveredMission criticalAgent-readable, linked, semantic resources are central to GraphCentric.
llms.txtRecommendedCoveredHighPublic resource /llms.txt gives agents a curated index of core GraphCentric pages and ideas.
llms-full.txtOptionalGapMediumUseful while the public site is small. Consider generated full-text export.
Per-page Markdown source endpointsRecommendedPartialMission criticalIndex advertises Markdown alternate. Extend pattern to all documentation-like pages.
robots.txt for AI crawlersRecommendedGapHighAdd explicit AI crawler policy to robots.txt.
Content Signals in robots.txtOptionalGapMediumRelevant for public licensing posture. Add once policy is decided.
Web Bot AuthOptionalDeprioritisedLowMonitor standard maturity before implementation.
Stable URLsRequiredCoveredMission criticalStable resource URIs are a platform design rule.
Structured data for agentsRecommendedCoveredMission criticalRDF, JSON-LD frames, and embedded resource models are first-class.
Machine-readable formatsRecommendedCoveredMission criticalResources can expose HTML, JSON-LD, Turtle, Markdown, and other alternates.
HTTP Link headers for discoveryRecommendedCoveredMission criticalMothership projects explicit link nodes into HTTP Link headers and HTML links.
MCP and tool discoveryOptionalGapHighStrong mission fit. Define safe public MCP tools and discovery metadata.
A2A agent cardsOptionalDeprioritisedLowWait for clearer product need and standard maturity.
Agent Skills discoveryRecommendedGapHighGood fit. Publish skills for resource discovery, auth, and graph inspection when stable.
DNS for AI DiscoveryOptionalDeprioritisedLowMonitor; depends on DNS operations and adoption.
NLWebOptionalGapMediumPotential public demo surface, but MCP/resource discovery should come first.
WebMCPOptionalDeprioritisedLowBrowser-native agent APIs are not stable enough to prioritise.
SchemamapOptionalGapHighExcellent semantic-web fit. Explore generating schemamap from resource configuration graph.

Performance

Core Web Vitals, caching, images, fonts, and network behaviour.

TopicChecklistStatusGC priorityEvidence and next action
Core Web VitalsRequiredGapHighAdd measurement through Lighthouse, RUM, or synthetic checks.
Image optimisationRequiredPartialMediumImages are self-hosted. Need dimensions, formats, and responsive image audit.
Lazy loading images, iframes, and videoRecommendedPartialMediumAudit offscreen media and add native lazy loading where appropriate.
Preload, prefetch, preconnectRecommendedGapMediumAdd only after identifying critical fonts/images and likely next navigations.
Cache-Control headersRequiredPartialHighVarnish is in path. Need explicit policy for HTML, assets, and private resources.
Conditional requestsRecommendedCoveredMission criticalRepository docs describe query cache, ETag, and stream invalidation support.
No-Vary-Search response headerRecommendedGapMediumUseful for tracking parameters. Need safe query parameter policy.
CompressionRequiredCoveredHighCaddy configuration enables zstd and gzip.
Web font loadingRecommendedPartialMediumFonts are site-controlled. Need font-display, subsetting, and preload review.
Critical CSS and render-blocking resourcesRecommendedGapMediumCSS is currently linked normally. Optimise if metrics show render blocking.
Script loadingRecommendedPartialMediumSmall inline and theme scripts exist. Need defer/module audit for external scripts.
HTTP/2 and HTTP/3RecommendedCoveredHighCaddy reports h1, h2, and h3 support in local environment.
Speculation RulesRecommendedDeprioritisedLowCould help navigation, but not before cache and metric basics.
Resource hints overviewRecommendedGapMediumSame workstream as preload, prefetch, and preconnect.
View TransitionsRecommendedDeprioritisedLowNice progressive enhancement, not core to platform value.
Back/forward cacheRecommendedPartialMediumMostly static server-rendered pages should be eligible. Need BFCache audit for scripts and streams.
Visibility-aware renderingRecommendedDeprioritisedLowApply only to long pages with measured layout cost.
CSS containmentOptionalDeprioritisedLowOptimisation tool for measured component-level issues.
Scroll-driven animationsOptionalDeprioritisedLowNo need for scroll animation capability now.
Scrollbar gutterRecommendedGapLowAdd scrollbar-gutter: stable if layout shift is observed.
Dynamic viewport unitsRecommendedPartialMediumResponsive CSS exists. Audit mobile full-height sections for dvh/svh/lvh needs.
Compression Dictionary TransportOptionalDeprioritisedLowPremature for current traffic and asset profile.

Privacy

Consent, privacy signals, and respecting visitor choice.

TopicChecklistStatusGC priorityEvidence and next action
Privacy policyRequiredCoveredHighPublic site includes a privacy page linked from the footer.
Cookie consentRequiredPartialHighCookie policy exists. Need audit of actual cookies and whether consent UI is required.
Global Privacy ControlRecommendedGapMediumAdd handling once analytics and data-sharing posture is finalised.
Third-party scripts and privacyRecommendedCoveredHighPublic template avoids third-party scripts by default.
Privacy-respecting analyticsRecommendedGapMediumIf analytics are added, choose aggregate cookieless analytics first.
Data minimisationRecommendedPartialMission criticalGoverned updates and named graphs support minimisation. Need public statement and audit trail.

Resilience

Graceful failure, error pages, offline support, and monitoring.

TopicChecklistStatusGC priorityEvidence and next action
Custom error pagesRequiredGapHighAdd user-friendly 404 and 500 pages with correct status codes.
Maintenance pages and 503RecommendedGapMediumAdd operational maintenance response pattern with Retry-After.
Graceful degradation when JavaScript failsRecommendedPartialHighPrimary public content is server-rendered. Some authenticated interactivity relies on DataStar/JS.
Offline support and service workersOptionalDeprioritisedLowNot needed for the public marketing/docs site yet.
Web app manifestRecommendedCoveredLowPublic template links /site.webmanifest, which declares site identity, theme colour, and app icons.
Monitoring and uptimeRecommendedPartialHighOperational services exist. Need explicit external monitoring and public/private status plan.

Internationalisation

Language, locale, direction, and translated content.

TopicChecklistStatusGC priorityEvidence and next action
International URL structureRecommendedNot applicableLowNo multilingual public site yet. Decide URL strategy before translation.
hreflang for language and regional URLsRecommendedNot applicableLowDepends on multilingual alternates.
Localised page metadataRecommendedNot applicableLowDepends on translated content.
hreflang in XML sitemapsOptionalNot applicableLowDepends on multilingual sitemap alternates.
Avoid automatic IP-based language redirectsAvoidCoveredMediumNo automatic geo-language redirects are used.
lang attribute on inline contentRequiredPartialMediumPage language is set. Need inline language markup if non-English content appears.
Language switcherRecommendedNot applicableLowNo translated pages yet.
RTL and bidirectional textRecommendedNot applicableLowNo RTL locales yet.
Writing modes and CJK line breakingOptionalNot applicableLowNo CJK or vertical-writing locales yet.
Locale-aware contentRecommendedPartialMediumFuture data-driven apps need locale-aware dates, numbers, currencies, and units.
Plural rules and grammatical numberRecommendedGapMediumNeed i18n strategy before dynamic multilingual UI strings.
Internationalised Domain NamesOptionalDeprioritisedLowNo IDN requirement for graphcentric.com.

Next Priorities

Shortlist of high-fit work from this audit.

  1. Publish /llms.txt, expand Markdown alternates, and add an API catalog for resource and update discovery.
  2. Complete security response headers: CSP, HSTS, nosniff, Referrer-Policy, Permissions-Policy, and frame-ancestors.
  3. Audit accessibility basics: skip links, focus indicators, form labels, form errors, headings, link text, and image alt text.
  4. Add public metadata polish: canonical links, Open Graph, favicons, theme-color, and color-scheme.
  5. Add operational resilience: custom error pages, 503 maintenance handling, external monitoring, and Core Web Vitals measurement.