Manifest position 96 · CrUX rank bucket 1000

https://groww.in

Coverage complete

Public, pre-auth representative templates audited. Account opening was inspected to the credential boundary; regulated KYC/trading after authentication was intentionally outside public-scope coverage.

Attempts
1 / 3
Judged checks
58 / 58
Blocked
0
Not run
0
This report has no published overall score. Blocked and not-run checks are not passes. A coverage-complete report means every check has a judged outcome; it does not mean every check passed.

All 58 atomic check outcomes

Principle / checkStatusConfidenceEvidence or reason
respect-user-preferences
respects-color-scheme
issueshighThe dark-condition screenshot remains white and the rendered root is data-theme="light" with color-scheme:light.
F01 medium: Dark mode ignores the user preference
respect-user-preferences
respects-reduced-motion
issueshighThe preference matched, but five animations remained, including four indefinitely running 30s–200s animations, and no reduced-motion CSS rule was found.
F02 high: Reduced-motion users still receive indefinite motion
respect-user-preferences
respects-contrast
passhighForced-colors rendered navigation, search, and ticker text visibly in system black/white colors; ordinary-mode contrast failures are recorded separately under sufficient-contrast.
implement-natural-interactions
view-transitions
issuesmediumThe browser supports View Transitions, but no view-transition CSS was present on any representative template and route changes use abrupt full swaps.
F03 low: Route changes are abrupt despite View Transition support
implement-natural-interactions
scroll-driven-animations
passmediumNo scrollytelling, parallax, or scroll-linked reveal was observed on the representative pages, so no main-thread scroll-linked animation anti-pattern was found.
implement-natural-interactions
physical-gestures
not-applicablehighNo gesture-driven removal, pull-to-reveal, draggable carousel, or comparable physical gesture was present on the audited public templates.
provide-guided-navigation
scroll-state-aware-chrome
issuesmediumLong pages retain a clipped desktop-style header and provide no progress or scroll-state adaptation; no scroll-state/container CSS was detected.
F04 medium: Long-page navigation chrome does not adapt on mobile
provide-guided-navigation
anchored-positioning
not-applicablehighNo open tooltip, popover, or edge-sensitive anchored menu was exposed in the representative public flows.
provide-guided-navigation
directs-attention
issuesmediumRoute changes and the 404-to-home path provide no directional transition or focus/attention cue; view-transition/highlight styles were absent.
F05 low: Navigation does not cue moved focus or direction
maximize-content-reduce-noise
no-intrusive-interruptions
issueshighThe demat route opens with a viewport-covering signup overlay before interaction and no visible close action.
F06 high: Account page is obscured by an unsolicited signup overlay
maximize-content-reduce-noise
semantic-dismissible-primitives
issueshighThe covering signup modal is a fixed DIV (.rodal) with no dialog role; representative pages reported zero <dialog> and zero popover elements.
F07 high: Signup modal is a non-semantic fixed DIV
maximize-content-reduce-noise
reduced-chrome
passmediumThe home, stock detail, calculator, and blog templates use restrained borders and keep their primary content visually dominant once no overlay is present.
adapt-to-the-form-factor
responsive-no-horizontal-scroll
issueshighEvery sampled template overflowed horizontally: home/stocks/mutual funds by about 6.7k px, stock detail by 442 px, calculator by 384 px, demat by 347 px, and blog by 682 px.
F08 critical: All representative mobile templates overflow horizontally
adapt-to-the-form-factor
component-level-responsiveness
issuesmediumNo @container rules were found, while shared header/ticker and cards visibly remain desktop-sized and clipped at mobile widths.
F09 medium: Shared components do not adapt to their containers
adapt-to-the-form-factor
input-modality-aware
issueshighEach template exposes more than 400 visible targets below 24px in at least one dimension; sampled pre-rendered anchors did not accept focus or show an outline.
F10 high: Hundreds of targets are undersized and keyboard focus is unreliable
support-core-task-success
clear-purpose-and-primary-action
passhighHome, stocks, mutual funds, stock detail, calculator, and blog all state their purpose with a clear H1 and an obvious next action or content object.
support-core-task-success
primary-flow-completion
passmediumThe representative public flow, open SIP calculator, adjust investment/return/time inputs, and read updated totals, was available without a dead end; investment/account execution correctly requires authentication.
support-core-task-success
clear-system-state-and-recovery
passhighThe stock detail explains delayed prices and offers LOGIN; an invalid route renders a clear 404 with a Go to Home Page recovery link.
be-fast-and-stable
good-core-web-vitals
issueshighMobile Lighthouse measured LCP 10.6s, TBT 7,020ms and performance 0.33; trace corroborated LCP 2.44s and 445ms TBT in a lighter desktop run.
F11 critical: Mobile performance misses the Core Web Vitals load bar
be-fast-and-stable
visual-stability
passhighBoth the mobile layout observer and Lighthouse recorded CLS 0 on the home load.
be-fast-and-stable
efficient-main-thread
issueshighTrace recorded 9 long tasks (longest 232ms, TBT 445ms); mobile Lighthouse measured 7,020ms TBT.
F12 high: Long tasks block the main thread
be-fast-and-stable
efficient-resource-delivery
issueshighHome loaded 360 requests and 4.14MB transferred, including 138 scripts; Lighthouse failed LCP discovery and network-dependency insights.
F13 high: The home load ships 360 requests and 4.14MB
be-fast-and-stable
trim-unused-and-duplicate-code
issueshighLighthouse estimated 776KiB unused JS and 16KiB unused CSS; analytics and app chunks dominate the request weight.
F14 high: At least 776KiB of JavaScript is unused on load
be-inclusive
names-roles-labels
issueshighLighthouse found an accessible-name mismatch; calculator has three unlabeled inputs, the account overlay input has no label/ARIA name, and image audit found two missing alt attributes.
F15 high: Controls and links lack robust accessible names
be-inclusive
sufficient-contrast
issueshighTicker text measured 2.51:1, positive values 2.66:1, and the white-on-green Get started control 2.66:1, below WCAG AA.
F16 high: Key ticker and CTA colors fail contrast
be-inclusive
structure-and-focus
issueshighRepresentative probes found no main/nav/header/footer landmarks, while sampled links had outline-style none and many empty accessible names, making focus orientation unreliable.
F17 high: Landmarks and focus orientation are weak
be-inclusive
legible-text
passmediumPrimary headings and body text on stock, calculator, and blog templates are comfortably sized and not clipped vertically.
be-inclusive
zoom-reflow-targets-and-media
issueshighMobile Lighthouse found a second viewport declaration with maximum-scale=1/user-scalable=no; every template overflowed horizontally and hundreds of targets were under 24px.
F18 critical: Zoom is disabled and content fails mobile reflow
follow-best-practices
no-console-errors
issueshighConsole logged FedCM concurrency/network errors and multiple CSP-blocked scripts, images, and analytics requests.
F19 medium: The page logs runtime, FedCM, and CSP errors
follow-best-practices
sound-document-and-assets
issueshighDoctype/charset are valid, but 4 images lack dimensions, 29 are oversized, 18 use legacy formats, and 2 lack alt text.
F20 medium: Image dimensions and delivery are inconsistent
follow-best-practices
browser-platform-hygiene
issuesmediumThe page failed BFCache for three no-store reasons, emitted inspector issues, and large first-party bundles referenced missing source maps.
F21 low: BFCache, source maps, and inspector hygiene regressions remain
be-discoverable
title-and-description
passhighEvery representative page had a unique descriptive title and meta description.
be-discoverable
crawlable-and-mobile-friendly
issueshighURLs and robots are crawlable, but 326–330 anchors per template have no descriptive text/accessible name, and mobile Lighthouse found zoom disabled by a second viewport meta.
F22 high: Hundreds of links have no descriptive text and mobile zoom is blocked
be-discoverable
canonical-and-indexing-signals
passhighAll sampled pages returned index signals and self-referential canonicals; robots.txt and sitemap.xml were reachable.
be-discoverable
structured-and-shareable-metadata
passhighAll sampled entity/content templates exposed 2–4 JSON-LD blocks and seven Open Graph tags consistent with visible titles.
be-private-and-secure
secure-transport-and-headers
issueshighHTTPS/HSTS/nosniff/frame protection are present, but the desktop response lacked CSP, 7 of 8 cookies were flagged insecure, and the mobile CSP blocked several configured integrations.
F23 high: Cookie and CSP policy is inconsistent across variants
be-private-and-secure
data-minimisation-and-third-parties
issueshighLoad contacted 14 third-party origins including four known trackers; HAR captured 347 third-party-classified requests and 4.07MB transferred (including first-party asset subdomains classified by origin).
F24 high: Tracking and third-party collection is heavy by default
be-private-and-secure
in-context-permissions-and-modern-auth
passmediumNo browser permission prompt appeared on load; authentication offers Google FedCM and an email continuation rather than exposing a password-only form.
be-private-and-secure
defensive-browser-policies
issueshighReferrer-Policy and Permissions-Policy are absent; desktop CSP was absent while mobile CSP produced blocked-resource violations, indicating inconsistent defensive policy deployment.
F25 high: Referrer and Permissions policies are absent
be-resilient
progressive-enhancement
passhighRaw HTML retained 85–99% of rendered content on every template and none was a JS shell, so core public content remains reachable without JavaScript.
be-resilient
resilient-runtime-behaviour
passmediumStock data, calculator, signup overlay, and blog all reached stable rendered states; no cut-off menu or broken asynchronous shell was observed beyond separately reported reflow.
be-resilient
offline-and-installable
issuesmediumA valid standalone manifest exists, but navigator.serviceWorker.getRegistrations() returned no registration, so the app has no demonstrated offline fallback.
F26 medium: Installable metadata has no offline service worker
be-resilient
network-and-http-failure-states
passhighAn invalid URL renders an intentional, readable 404 state with a direct home recovery action instead of a blank shell.
be-internationalised
lang-dir-and-logical-properties
issuesmediumPages declare lang=en but no dir; the public site claims multilingual finance yet exposes no hreflang/language choice in sampled metadata, and severe fixed-width overflow gives no evidence that translated expansion or bidi layouts survive.
F27 medium: Multilingual/bidi readiness is not demonstrated
be-internationalised
locale-aware-data
passmediumCalculator and stock templates consistently render Indian currency and lakh grouping (for example ₹30,00,000 and ₹335.60), appropriate for the stated Indian locale.
be-internationalised
time-zone-correctness
not-applicablehighNo public audited template exposed a date/time scheduling or recurring-event workflow whose time-zone or DST behavior could apply.
be-trustworthy
no-dark-patterns
issueshighThe demat route forces an undismissible full-screen signup DIV before users can inspect the page; there is no visible cancel/close affordance and consent copy is compressed into the continuation UI.
F28 high: Account opening starts with an undismissible commitment UI
be-trustworthy
humane-error-handling
issueshighThe signup control is not a semantic form, its text input is unlabeled, and no accessible error-announcement surface or declarative validation semantics were present.
F29 high: Signup validation lacks semantic, accessible error handling
be-trustworthy
trustworthy-input-assistance
issueshighThe signup field has autocomplete="on" instead of a purpose-specific email token and no label/ARIA name; three calculator inputs are also unlabeled.
F30 medium: Inputs do not expose purpose-specific autofill semantics
be-trustworthy
safe-commercial-and-account-flows
issueshighThe account route immediately traps the page behind a modal-like signup layer with no visible cancellation, weakening reversibility before the user can review account details.
F31 high: The account flow is not visibly reversible
be-sustainable
optimised-assets
issueshigh29 of 31 images were over 2x displayed resolution, 18 used legacy formats, 7 lacked srcset, and 26 below-fold images were not lazy-loaded.
F32 high: Most images are oversized or delivered inefficiently
be-sustainable
no-wasteful-work
issueshighThe home load makes 360 requests with 138 scripts; Lighthouse estimated 776KiB unused JS and the trace recorded nine long tasks.
F33 high: Background scripts and requests waste client resources
be-sustainable
third-party-and-media-budget
issueshighKnown ad/analytics trackers and WebEngage contribute hundreds of kilobytes; Google Tag Manager/gtag alone account for roughly 487KB transferred.
F34 high: Third-party scripts consume a disproportionate budget
be-agent-ready
structured-agent-capabilities
not-applicablehighNo agent-facing capability is claimed by the public site, and the runtime probe found no WebMCP registration; this emerging capability is contextual and therefore not penalised.
be-agent-ready
on-device-inference
not-applicablehighNo summarisation or language-model experience is offered on the audited public templates, so on-device inference is not applicable.
be-memory-efficient
no-leak-under-repeated-interaction
passmediumAfter ten representative calculator updates, node count fell from 833,097 to 831,736 and self size from 49,888,433 to 49,813,933 bytes; no retained growth was observed.
be-memory-efficient
bounded-footprint
issuesmediumA simple calculator retained about 833k heap nodes and 49.9MB self size at baseline, a large footprint for this surface even though it did not grow under repetition.
F35 medium: A simple calculator has a large baseline heap/DOM footprint
be-memory-efficient
no-detached-dom-or-unbounded-listeners
passmediumThe repeated interaction ended with 1,361 fewer heap nodes and 74,500 fewer self-size bytes than baseline, providing no signal of accumulating detached DOM/listeners in this bounded test.

Provenance

Canonical report: results/atomic/reports/0096-groww_in.json
Report SHA-256: 84d552ae90d1d858c2899ea1d5ac4ee62adc88d77fdc0d29c2b41d8a24b940e0
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/groww_in/2026-07-18T09-26-45-809Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/groww_in/2026-07-18T09-26-45-809Z
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.