Manifest position 450 · CrUX rank bucket 1000
https://shahvani.com
Coverage complete
Coverage-complete audit of six representative public paths and all 58 catalog checks.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | The dark-condition screenshot is pixel-identical to the light screenshot; the probe reports color-scheme: normal and no color-scheme or prefers-color-scheme CSS. F01 medium: The site remains light when the user requests dark mode. |
respect-user-preferencesrespects-reduced-motion | pass | high | Emulated reduced-motion matched true and getAnimations() returned an empty list, so no nonessential motion remains active. |
respect-user-preferencesrespects-contrast | issues | high | Under prefers-contrast: more, links remain #80073f with no border or non-color cue; the CSS probe found no prefers-contrast or forced-colors rules. F02 medium: High-contrast preferences do not receive an adapted treatment. |
implement-natural-interactionsview-transitions | issues | high | The stylesheet probe found no view-transition-name or @view-transition rule across the MPA shell. F03 low: Cross-document navigation swaps abruptly with no transition treatment. |
implement-natural-interactionsscroll-driven-animations | pass | high | CSS/animation probe found no scroll timeline and layout observations found only native scrolling, with no scroll-linked animation anti-pattern. |
implement-natural-interactionsphysical-gestures | pass | high | Representative pages use native page scrolling and links; no custom swipe, drag, pointermove, or scroll-snap interaction fights platform gestures. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The listing and detail DOMs are about 6,400 to 8,600 CSS px tall, while the CSS probe found no scroll-state, scroll timeline, or progress treatment. F04 low: Long listing and detail pages provide no responsive scroll-state orientation. |
provide-guided-navigationanchored-positioning | not-applicable | high | No tooltip, popover, anchored menu, or viewport-edge overlay exists on the representative public pages. |
provide-guided-navigationdirects-attention | pass | high | Visible nav labels are descriptive, real href links, and content links identify their destinations; Lighthouse crawlable anchors passes. |
maximize-content-reduce-noiseno-intrusive-interruptions | pass | high | Desktop and mobile load screenshots show content immediately with no interstitial, consent wall, or overlay obscuring it. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | At 360px the visible menu trigger is DIV role=navigation, tabindex=-1, has no name, and is only 25x29px. It cannot be operated with the keyboard. F05 high: The mobile menu trigger is an unfocusable div rather than a button. |
maximize-content-reduce-noisereduced-chrome | pass | high | Screenshots show a restrained header, one content panel, and compact footer; the primary content dominates below the mobile shell. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | Layout probes at 360x800 report 0px horizontal overflow on homepage, stories and forum; screenshots show reflowed content. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The complete CSS probe found no container-type or @container rules despite cards, tables, forms and navigation being reused in narrow and wide contexts. F06 low: Components rely only on page-level responsive rules. |
adapt-to-the-form-factorinput-modality-aware | issues | high | The menu trigger measures 25x29px and tabindex=-1; desktop login/register links measure only 29x31px and 47x31px. F07 high: Key mobile controls are too small and one is pointer-only. |
support-core-task-successclear-purpose-and-primary-action | pass | high | First viewport states site purpose, links directly to stories/photos/community, and displays clear login/register actions. |
support-core-task-successprimary-flow-completion | pass | high | Public story and forum routes load directly from real hrefs, and the login form presents labelled username/password, CAPTCHA and submit controls without an account-wall detour. |
support-core-task-successclear-system-state-and-recovery | issues | high | A request to a nonexistent route returned HTTP 404 with an empty response, producing the browser error screen with no site navigation, explanation, search, or recovery link. F08 medium: Unknown routes fall through to Chrome’s generic 404 page. |
be-fast-and-stablegood-core-web-vitals | pass | high | Lighthouse reports LCP 1.67s, CLS 0.00196 and TBT 3.5ms; trace LCP is 456ms with 0ms TBT. |
be-fast-and-stablevisual-stability | pass | high | Mobile layout observers report CLS 0 on homepage, stories and forum; Lighthouse CLS is 0.00196. |
be-fast-and-stableefficient-main-thread | pass | high | Trace reports no long tasks and 0ms TBT; list observations saw only one 75ms and one 52ms task, with no sustained blockage. |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR/DOM confirmation shows jQuery 3.5.1, Moment, Underscore, global.js, lp.js and sharer.min.js are classic scripts without async/defer. The homepage still has a good 1.7s Lighthouse LCP, but this delivery pattern increases dependency cost. F09 medium: Nonessential legacy scripts are parser-blocking on every page. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | The HAR reports 350,952 transferred bytes, including 274,030 script bytes; 198,233 bytes are third-party and Google Tag Manager alone is 152,718 bytes. F10 medium: Third-party and legacy JavaScript dominate an otherwise small page. |
be-inclusivenames-roles-labels | issues | high | The mobile probe identifies a nameless DIV with role=navigation and tabindex=-1 as the hamburger trigger. F11 high: The mobile navigation trigger has neither a valid control role nor an accessible name. |
be-inclusivesufficient-contrast | issues | high | axe reports five serious link-in-text-block failures: #80073f links have only 1.21:1 contrast against surrounding #333 text and no underline or other cue. F12 high: Inline links are distinguishable only by low-contrast color. |
be-inclusivestructure-and-focus | issues | high | axe and Lighthouse report no main landmark and no h1; the DOM probes show zero h1/h2 elements on homepage, listing, forum, login and detail samples. F13 high: Pages lack a main landmark and heading hierarchy. |
be-inclusivelegible-text | pass | high | Mobile screenshots show 17px Persian text with comfortable line spacing and no clipping or horizontal overflow across content and form templates. |
be-inclusivezoom-reflow-targets-and-media | issues | high | The menu trigger is 25x29px, login/register links are 29x31px and 47x31px, and the CAPTCHA refresh button is 37x37px. Reflow itself has no horizontal overflow. F14 medium: Several important targets fall below a comfortable touch size. |
follow-best-practicesno-console-errors | pass | high | Lighthouse errors-in-console audit passes with an empty error list. |
follow-best-practicessound-document-and-assets | issues | high | The images primitive and Lighthouse unsized-images audit both identify /static/images/logo.png as missing width and height. F15 low: The logo has no intrinsic width and height attributes. |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse best-practices scores 0.77 and inspector-issues fails; its third-party-cookies audit reports six cookies. F16 medium: Chrome records unresolved inspector issues from the page’s cookie and third-party setup. |
be-discoverabletitle-and-description | pass | high | DOM probe confirms a Persian title and descriptive meta description; discoverability confirms both survive in raw HTML. |
be-discoverablecrawlable-and-mobile-friendly | pass | high | All 20 homepage links have hrefs, viewport meta is present, robots allows search indexing, and Lighthouse crawlability passes. |
be-discoverablecanonical-and-indexing-signals | issues | high | The metadata probe found no rel=canonical on the homepage; robots allows search and sitemap.xml lists a large public corpus, so canonical indexing signals are applicable. F17 medium: Public pages omit canonical URLs. |
be-discoverablestructured-and-shareable-metadata | issues | high | The homepage probe found zero JSON-LD blocks and no Open Graph tags; representative pages are public stories, forums and lists. F18 medium: Content pages have no structured or social-preview metadata. |
be-private-and-securesecure-transport-and-headers | issues | high | The headers primitive reports missing CSP and HSTS. All four observed cookies lack Secure; shsess is HttpOnly but SameSite=None. F19 high: Session and analytics cookies are sent without Secure and with SameSite=None, and CSP/HSTS are absent. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | The tracker probe finds four third-party origins including Google Analytics and an ad-tech origin; HAR attributes 198,233 of 350,952 transferred bytes to third parties. F20 high: Tracking starts on load without an evident consent or minimisation boundary. |
be-private-and-securein-context-permissions-and-modern-auth | issues | high | The login form exposes username/password fields but neither has autocomplete, and the page/source probes show no WebAuthn/passkey affordance. F21 medium: The account flow offers password-only authentication with no autofill tokens or passkey path. |
be-private-and-securedefensive-browser-policies | issues | high | Headers show no HSTS, CSP, or Permissions-Policy; Referrer-Policy is no-referrer-when-downgrade rather than a stricter origin policy. X-Frame-Options and nosniff are present. F22 high: Several browser-enforced defenses are missing or weak. |
be-resilientprogressive-enhancement | pass | high | Discoverability reports 100% raw-HTML content coverage, no JS shell, and identical crawler/browser content visibility. |
be-resilientresilient-runtime-behaviour | pass | high | No transient overlays or asynchronous app shell exists on sampled routes; navigation is server-rendered and stable in screenshots/layout observers. |
be-resilientoffline-and-installable | issues | high | The manifest is valid, but the runtime probe reports no registrations and rendered source calls getRegistrations() then unregister() on every load, so there is no offline fallback. F23 low: The site advertises an app manifest but deliberately unregisters every service worker. |
be-resilientnetwork-and-http-failure-states | issues | high | The unknown-route test returns a bare HTTP 404 and Chrome’s generic error document rather than a useful site state. F24 medium: HTTP failure recovery is not handled by the site. |
be-internationalisedlang-dir-and-logical-properties | pass | high | Rendered HTML declares lang=fa and dir=rtl, and mobile screenshots show correct Persian reading order. |
be-internationalisedlocale-aware-data | not-applicable | high | The sampled public routes expose no dates, currencies, or other user-facing locale-sensitive data that can be meaningfully reformatted. |
be-internationalisedtime-zone-correctness | not-applicable | high | The sampled public routes expose no scheduling or event-time flow where time-zone or DST correctness applies. |
be-trustworthyno-dark-patterns | pass | high | Homepage, login and invalid-submit states show no preselected consent, disguised ads, forced continuity, confirmshaming, or obstructed cancellation. |
be-trustworthyhumane-error-handling | pass | high | Empty login submit invokes native required-field validation without clearing entered context; visible labels are retained for username and password. |
be-trustworthytrustworthy-input-assistance | issues | high | The username and password inputs have labels but no autocomplete attributes; the CAPTCHA answer is also unlabeled and placeholder-only. F25 medium: Sign-in fields omit autocomplete assistance. |
be-trustworthysafe-commercial-and-account-flows | not-applicable | high | No checkout, subscription, pricing, cancellation, or sensitive account-management flow is available in the unauthenticated scope. |
be-sustainableoptimised-assets | pass | high | The only homepage image is a 5.9KB logo, is not oversized at its display size, and Lighthouse responsive-image audit passes. |
be-sustainableno-wasteful-work | issues | high | A 508-character homepage makes 21 requests; seven are third-party, including analytics, Cloudflare telemetry and four requests to coverdistilltile.com. F26 medium: Background analytics and ad-tech work is disproportionate to the simple homepage. |
be-sustainablethird-party-and-media-budget | issues | high | Third-party transfer is 198,233 bytes, 56% of the 350,952-byte homepage, while the visible page has one small logo and short text. F27 medium: Third parties consume most transferred bytes without visible user value. |
be-agent-readystructured-agent-capabilities | not-applicable | high | The publisher explicitly blocks major AI agents in robots.txt and exposes no intended agent-facing action surface. |
be-agent-readyon-device-inference | not-applicable | high | The simple content/community experience has no task that plausibly benefits from on-device inference. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | After ten menu open/close cycles, heap grew only 128,836 bytes (0.58%) and 734 nodes (0.64%), consistent with bounded warm-up rather than unbounded retention. |
be-memory-efficientbounded-footprint | pass | high | Baseline heap is about 22.0MB and 115,507 nodes, proportionate to the small server-rendered page plus third-party scripts. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Neither heap summary reports Detached* among retained constructors, and the repeated menu interaction produced only sub-1% growth. |
Provenance
Canonical report: results/atomic/reports/0450-shahvani_com.json
Report SHA-256: b519a4bbe1cdeaea006944af0cd2a144ed3ebac4f3fe7f921b270a24573e23f5
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/shahvani_com/2026-07-20T22-12-35-429Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/shahvani_com/2026-07-20T22-12-35-429Z
Catalog SHA-256: sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7
Raw screenshots, HARs, traces, heaps, and other browser artifacts are retained at the local evidence root and intentionally are not committed. Artifact paths in the canonical report are relative to that root.