Manifest position 738 · CrUX rank bucket 1000
https://divar.ir
Coverage complete
Atomic coverage complete. External fetches occasionally received HTTP 429, so the HAR is not used for byte conclusions; browser trace, Lighthouse, DOM, screenshots, and successful crawler fetches provide the judgements.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | A screenshot captured with prefers-color-scheme: dark remains white with the same light surfaces and grey controls as the ordinary desktop view. F01 medium: Dark preference leaves the listings UI in its light palette |
respect-user-preferencesrespects-reduced-motion | issues | high | The reduced-motion evaluate probe reported eight running animations, each with a 360 ms duration, while prefers-reduced-motion: reduce matched. F02 medium: Animations continue when reduced motion is requested |
respect-user-preferencesrespects-contrast | pass | medium | Forced-colors screenshot preserves distinct borders, labels, controls, focus affordances, and readable system colors. |
implement-natural-interactionsview-transitions | issues | high | DOM/CSS inspection across the listing and detail templates found no authored view-transition-name or ::view-transition styling; navigation swaps the route abruptly. F03 low: Route changes do not use View Transitions |
implement-natural-interactionsscroll-driven-animations | pass | medium | DOM/CSS inspection found no authored scroll-linked animation or parallax effect, and scrolling remains native; therefore no main-thread scroll-animation anti-pattern is present. |
implement-natural-interactionsphysical-gestures | pass | medium | Mobile listing scrolling and the detail media carousel retain native scrolling/button behavior; no interaction that fights pointer or touch scrolling was observed. |
provide-guided-navigationscroll-state-aware-chrome | pass | medium | The rendered listing CSS defines a sticky 64 px navigation bar and the mobile capture keeps primary navigation reachable while content scrolls. |
provide-guided-navigationanchored-positioning | issues | high | Rendered CSS places the category menu with position:absolute; top:100%; right:0; left:0 and does not use anchor-name, position-anchor, or position-try fallbacks. F04 low: The category overlay is manually positioned rather than anchor-aware |
provide-guided-navigationdirects-attention | pass | medium | Visual review shows clear red primary actions, active listing cards, breadcrumbs on detail, and persistent navigation cues without competing animation. |
maximize-content-reduce-noiseno-intrusive-interruptions | pass | medium | Home, listing, and detail load directly into core content with no consent wall or promotional interstitial; the /new login modal appears only after choosing the protected posting route. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | The /new form probe found four SECTION elements with role=dialog, none with aria-modal or an accessible label; the visible panel is a modal authentication interruption. F05 medium: Authentication overlays are duplicated custom role=dialog sections without dialog semantics |
maximize-content-reduce-noisereduced-chrome | pass | medium | Listing and detail screenshots devote the majority of the viewport to cards, imagery, attributes, and actions; navigation/filter chrome remains compact. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | issues | high | The mobile layout primitive reported a 992 px layout/content width in a 360 px visual viewport, with 632 px horizontal overflow; the screenshot shows most navigation and content off-screen. F06 high: The landing page is clipped at 360 px |
adapt-to-the-form-factorcomponent-level-responsiveness | pass | medium | The same listing card template changes from a three-column desktop grid to a single-column mobile card with appropriately rearranged image and text. |
adapt-to-the-form-factorinput-modality-aware | pass | medium | Lighthouse accessibility scored 0.96 with no target-size or focus-order failure, and visible controls use large button/card hit areas in the mobile capture. |
support-core-task-successclear-purpose-and-primary-action | pass | medium | The entry explains city selection; listings expose search and “ثبت آگهی”; detail presents title, price, chat, and contact actions prominently. |
support-core-task-successprimary-flow-completion | pass | medium | The browse journey proceeds from city to listings to a server-rendered detail with visible contact/chat controls; posting reaches a clearly identified OTP authentication step. |
support-core-task-successclear-system-state-and-recovery | issues | high | After activating “Next” with the phone field blank, the captured state shows no error text, and the probe reports aria-invalid=false; only a generic login-required toast remains. F07 medium: Blank phone submission gives no field-level recovery guidance |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 4.8 s, FCP 3.6 s, TBT 280 ms, and performance 0.67; the independent trace measured LCP 2.98 s, showing material cold-load variability. F08 high: The listings path misses the good LCP range |
be-fast-and-stablevisual-stability | pass | medium | Lighthouse measured CLS 0.055 and the independent mobile landing layout observer recorded CLS 0 during its observation window. |
be-fast-and-stableefficient-main-thread | issues | high | The trace recorded two long tasks (116 ms longest) and 72.53 ms TBT; Lighthouse measured 280 ms TBT, 350 ms max potential FID, a 10.6 s TTI, and flagged forced reflow. F09 medium: Main-thread work delays interaction readiness |
be-fast-and-stableefficient-resource-delivery | issues | high | The images primitive found 17/19 images without width/height, 13 below-fold images without lazy loading, and 14 without responsive srcset. F10 medium: Listing images lack delivery and stability hints |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimated 584 KiB of unused JavaScript and 47 KiB of unused CSS on a 1,666 KiB transfer. F11 medium: The mobile bundle ships substantial unused code |
be-inclusivenames-roles-labels | issues | high | The form probe reports four role=dialog SECTION elements with no aria-label/aria-labelledby and no aria-modal, while one is visibly presented as the login dialog. F12 medium: The login modal has no programmatic name or modal state |
be-inclusivesufficient-contrast | issues | high | Lighthouse identified three bottom-nav controls at 4.39:1 (#71717a on #f4f4f5), below the 4.5:1 requirement for 12 px normal text. F13 medium: Mobile bottom-navigation text narrowly fails WCAG contrast |
be-inclusivestructure-and-focus | pass | medium | The listing has one H1 followed by card H2s, semantic navigation, and Lighthouse found no heading-order, focus-order, or keyboard trap failure. |
be-inclusivelegible-text | pass | medium | Desktop and mobile captures show readable Persian body text, clear heading hierarchy, comfortable card line lengths, and no text overlap. |
be-inclusivezoom-reflow-targets-and-media | issues | high | At 360x800 the page maintains a 992 px layout viewport and clips core city selection and navigation, preventing one-dimensional reflow. F14 high: The landing template does not reflow to a mobile viewport |
follow-best-practicesno-console-errors | pass | medium | Lighthouse best-practices scored 1.00 and did not report a browser-errors audit failure during the representative listing load. |
follow-best-practicessound-document-and-assets | issues | high | The image audit found width and height attributes missing on 17 of 19 images, despite the document otherwise having a valid doctype and UTF-8 charset. F15 low: Most listing images omit intrinsic dimensions |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse reports one large inline/first-party script without a source map and 17 mobile bundle maps returning 403. F16 low: Large scripts have unavailable source maps |
be-discoverabletitle-and-description | pass | medium | Rendered listing has a specific Persian title and description; the detail crawler test confirms title, H1, and meta description are present in raw HTML. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | The discoverability primitive fetched the listing with HTTP 200 but found 0% rendered-content coverage: raw HTML had 10 text characters, no title, H1, or description, while the browser rendered 2,226 characters and an H1. F17 high: The primary listing is empty to a non-JavaScript crawler |
be-discoverablecanonical-and-indexing-signals | issues | high | A direct fetch of /sitemap.xml returned HTTP/2 404 and robots.txt declares no Sitemap location, although canonical and robots meta signals exist on listing pages. F18 low: The conventional sitemap endpoint returns 404 |
be-discoverablestructured-and-shareable-metadata | pass | medium | The listing probe found three JSON-LD blocks and ten Open Graph tags; visible title/content correspond to the listing archetype. |
be-private-and-securesecure-transport-and-headers | issues | high | The cookie primitive found 8/8 cookies without Secure; seven are long-lived for 400 days. HSTS is present, but explicit Secure protects cookies against downgrade and non-HTTPS edge cases. F19 medium: All observed first-party cookies omit Secure |
be-private-and-securedata-minimisation-and-third-parties | pass | medium | Tracker capture found no known tracker domains; five non-site origins were primarily Divar CDN/Sentry/map infrastructure plus one trust seal, with no third-party cookies. |
be-private-and-securein-context-permissions-and-modern-auth | pass | medium | No permission prompt appeared on load; authentication is requested only when entering /new and uses a tel-national OTP field in context. |
be-private-and-securedefensive-browser-policies | issues | high | Headers include HSTS, nosniff, DENY/frame-ancestors, and CSP, but Permissions-Policy is missing and CSP permits unsafe-inline for scripts and styles. F20 low: Browser policy headers leave avoidable gaps |
be-resilientprogressive-enhancement | issues | high | The no-JS crawler view of /s/tehran contains no listing heading or cards despite an HTTP 200 response; the detail template, by contrast, provides 100% raw-content coverage. F21 high: The listings core experience depends entirely on JavaScript |
be-resilientresilient-runtime-behaviour | pass | medium | Rendered CSS includes explicit offline/back-online connection-banner states, while listing and detail routes completed without broken overlay placement. |
be-resilientoffline-and-installable | pass | medium | The page is controlled by a service worker and exposes a standalone manifest with start_url, theme/background colors, RTL language metadata, and icons. |
be-resilientnetwork-and-http-failure-states | pass | medium | The authored connection banner has distinct offline and back-online states and the listing template includes an explicit post-list error message and load-more recovery control. |
be-internationalisedlang-dir-and-logical-properties | pass | medium | The document declares lang=fa-IR and dir=rtl; representative CSS and screenshots use RTL layout consistently. |
be-internationalisedlocale-aware-data | pass | medium | Prices, relative times, placeholders, and OTP copy are rendered in Persian conventions; the phone input uses a localized placeholder and tel-national autocomplete. |
be-internationalisedtime-zone-correctness | not-applicable | high | The audited marketplace surfaces show relative listing ages and no scheduled cross-time-zone event or user-entered time value to validate. |
be-trustworthyno-dark-patterns | pass | medium | Posting authentication states the OTP action and links terms/privacy without preselected upsells; listing and contact CTAs are plainly labelled. |
be-trustworthyhumane-error-handling | issues | high | Activating “Next” with an empty phone field produced no inline error, no announced message, and no aria-invalid state; the user remains at the same field without actionable guidance. F23 medium: Phone validation does not explain how to recover |
be-trustworthytrustworthy-input-assistance | pass | medium | The phone input is type=tel with autocomplete=tel-national, a localized example, and an associated accessible label. |
be-trustworthysafe-commercial-and-account-flows | pass | medium | The audited account boundary clearly explains OTP delivery, exposes terms/privacy before continuation, and does not request a password or payment details out of context. |
be-sustainableoptimised-assets | issues | high | Although thumbnails use modern formats and are not oversized, 13 below-fold images load eagerly and 14 lack responsive source selection, increasing avoidable requests and bytes. F22 medium: The listing does not minimize image transfer work |
be-sustainableno-wasteful-work | pass | medium | The six-second trace contained two bounded long tasks and no continuous animation/media workload; tracker capture found no known analytics tracker. |
be-sustainablethird-party-and-media-budget | pass | medium | Lighthouse transferred 1,666 KiB for an image-rich marketplace feed; third-party capture was mostly Divar-operated infrastructure, with no autoplay media or known trackers. |
be-agent-readystructured-agent-capabilities | not-applicable | high | No declared agent-facing workflow or WebMCP surface was found, and a public classifieds browser does not inherently require agent tool registration. |
be-agent-readyon-device-inference | not-applicable | high | The audited core marketplace journeys do not require on-device inference; the browser API presence is not evidence of site intent. |
be-memory-efficientno-leak-under-repeated-interaction | pass | medium | After ten bottom/top scroll cycles the snapshot grew 3.48 MB while additional feed content loaded, but no Detached* constructor appeared; this is bounded content growth rather than direct leak evidence. |
be-memory-efficientbounded-footprint | pass | medium | The loaded feed used 38.3 MB heap self-size at baseline and 41.8 MB after loading more cards, proportionate to an image-rich interactive listing. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | medium | Neither heap summary exposed a Detached* constructor among retained populations after repeated scrolling, and growth was dominated by ordinary Objects/Arrays. |
Provenance
Canonical report: results/atomic/reports/0738-divar_ir.json
Report SHA-256: 869772316093ea2b0bd6ed193b2de5f121989be6f9c49fe695abbb28ebe5d4bd
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/divar_ir/2026-07-22T18-34-19-976Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/divar_ir/2026-07-22T18-34-19-976Z
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.