Manifest position 113 · CrUX rank bucket 1000
https://voters.eci.gov.in
Coverage complete
Coverage complete for public home, mobile rendering, login entry, crawler/no-JavaScript behavior, security, network, performance and memory. Authenticated voter transactions, CAPTCHA completion, destructive/account actions and external linked systems were not covered because no test identity or authorization was provided.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | The dark-emulated screenshot is byte-identical to the default capture; body stays white, computed color-scheme is normal, and the authored bundle contains no prefers-color-scheme rule. F01 medium: Dark preference is ignored |
respect-user-preferencesrespects-reduced-motion | issues | high | The reduced-motion probe matched the user preference but still found the infinite 1-second blink animation running. F02 medium: Blinking motion continues under reduced-motion |
respect-user-preferencesrespects-contrast | issues | high | Under prefers-contrast: more, body and control colors remained unchanged; several controls still use low-contrast color pairs. F03 medium: High-contrast preference does not change the palette |
implement-natural-interactionsview-transitions | issues | high | The downloaded authored CSS/JS contains no view-transition or startViewTransition usage; the tested home-to-login navigation is a same-document SPA route change. F04 low: SPA route changes do not use View Transitions |
implement-natural-interactionsscroll-driven-animations | not-applicable | high | No parallax, scrollytelling, reveal, or other scroll-linked animation was present on the audited routes. |
implement-natural-interactionsphysical-gestures | not-applicable | high | No carousel, swipe, pull-to-reveal, drag, or other gesture-driven component was present. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The entry page is 5,164px tall on mobile, while the scroll capture and authored feature probe show no progress indicator, scroll-state query, or responsive sticky chrome. F05 low: The long page offers no scroll-state guidance |
provide-guided-navigationanchored-positioning | not-applicable | high | No tooltip, popover, anchored menu, or edge-positioned overlay was present on the audited anonymous routes. |
provide-guided-navigationdirects-attention | issues | high | The rendered page has no h1-h3 headings and no main or nav landmark despite distinct Forms and Services sections; Lighthouse confirms no main landmark. F06 medium: Page structure does not guide navigation for all users |
maximize-content-reduce-noiseno-intrusive-interruptions | pass | high | Desktop and mobile load screenshots show content immediately with no pop-up, consent wall, or obstructive interstitial. |
maximize-content-reduce-noisesemantic-dismissible-primitives | not-applicable | high | No overlay, disclosure, custom picker, or modal flow was present on the audited anonymous surfaces. |
maximize-content-reduce-noisereduced-chrome | pass | high | The first viewport prioritises named Forms and Services cards; no advertising or decorative application frame obscures the civic tasks. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | At 360x800, layout reported scrollWidth=clientWidth=360 and 0px horizontal overflow; both home and login remain readable. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The authored CSS/JS probe found no @container or container-type usage across a card-heavy reusable layout. F07 low: Components rely on viewport layout only |
adapt-to-the-form-factorinput-modality-aware | issues | high | The focus probe found outline:none on Login, Sign-Up, and primary form buttons; Login is 33px tall and several controls are 21-36px high. F08 high: Keyboard focus is invisible on primary buttons and some targets are undersized |
support-core-task-successclear-purpose-and-primary-action | pass | high | The first viewport clearly identifies Citizen Service Portal and exposes Fill Enumeration Form, voter search, Login and Sign-Up actions. |
support-core-task-successprimary-flow-completion | pass | high | The anonymous representative flow from entry to Login completes successfully at /login and presents identifier, CAPTCHA and Request OTP controls; post-auth voter transactions were explicitly outside this audit. |
support-core-task-successclear-system-state-and-recovery | pass | high | Request OTP is visibly disabled until prerequisites are entered, required fields are visibly marked, and the route retains Login/Sign-Up navigation. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 14.9s, FCP 7.9s, TTI 16.4s and performance 0.45; the independent trace measured LCP 4.03s. Both LCP runs exceed the 2.5s good threshold. F09 high: Loading performance misses the modern baseline |
be-fast-and-stablevisual-stability | pass | high | CLS was 0.0206 on the mobile layout capture and 0.001 in Lighthouse, both within the good range. |
be-fast-and-stableefficient-main-thread | issues | high | Lighthouse measured 461ms TBT and a 335ms maximum potential input delay; the trace also recorded two long tasks. F10 medium: Script work delays interactivity |
be-fast-and-stableefficient-resource-delivery | issues | high | The HAR captured 82 requests and 2.92MB transferred; Lighthouse estimates 6.92s savings from render-blocking resources, including fonts, styles and parser-inserted scripts. F11 high: Render-blocking resources dominate the critical path |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimates 776KiB unused JavaScript and 370KiB unused CSS; the HAR shows 1.92MB of scripts and both Angular and React-like bundles on the entry route. F12 high: The page ships large unused React, Angular, jQuery and CSS payloads |
be-inclusivenames-roles-labels | issues | high | Lighthouse flags images without alt and visible-label/accessibility-name mismatches; the login captcha field has an empty aria-label and no associated label in the probe. F13 high: Accessible names, image alternatives and form labels are incomplete |
be-inclusivesufficient-contrast | issues | high | Lighthouse found numerous failures, including white on #28a745 at 3.13:1, white on #17a2b8 at 3.04:1, and white on #2bb9e9 at 2.27:1. F14 high: Primary controls fail WCAG contrast |
be-inclusivestructure-and-focus | issues | high | The DOM has no h1-h3 headings, no main/nav landmark, and primary buttons compute to outline:none when focused. F15 high: Landmarks, headings and focus treatment are insufficient |
be-inclusivelegible-text | issues | high | The focus probe and Lighthouse show several actionable labels rendered at 11-12px; the mobile screenshot shows dense card content and tightly packed controls. F16 medium: Small text and dense cards reduce reading comfort |
be-inclusivezoom-reflow-targets-and-media | issues | high | The focus/target probe measured Login at 102x33 and many form actions at 36px high, although 360px reflow itself has no horizontal overflow. F17 medium: Many interactive targets are below the recommended touch size |
follow-best-practicesno-console-errors | issues | high | Lighthouse captured a blocked inline script, invalid Google Fonts integrity, a 401 token-validation request, and a stylesheet served with text/html MIME. F18 medium: The page logs security, network and MIME errors |
follow-best-practicessound-document-and-assets | issues | high | The images primitive found 13 images without both dimensions and 18 oversized images; Lighthouse also reports unminified CSS/JS. F19 medium: Image dimensions and production asset hygiene are incomplete |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse reports BFCache blocked by no-store, missing source maps for large first-party bundles, and CSP inspector issues. F20 medium: BFCache, source maps and inspector hygiene need work |
be-discoverabletitle-and-description | issues | high | Both title and meta description are exactly “Citizen Service Portal”; the login title changes but its raw HTML still exposes the entry title. F21 medium: Entry metadata is generic and duplicated |
be-discoverablecrawlable-and-mobile-friendly | issues | high | Lighthouse found anchors without href and generic “Read more” text; /robots.txt returns the SPA HTML rather than valid robots directives. F22 high: Important links and crawler directives are not crawlable |
be-discoverablecanonical-and-indexing-signals | issues | high | The DOM has no canonical link, and /sitemap.xml responds 200 with the app shell rather than XML. F23 high: Canonical and sitemap/indexing signals are missing |
be-discoverablestructured-and-shareable-metadata | issues | high | The page probe found no JSON-LD and no Open Graph properties despite visible Election Commission organization/service content. F24 medium: The public civic portal has no structured or social metadata |
be-private-and-securesecure-transport-and-headers | pass | high | HTTPS, HSTS preload, CSP, nosniff, X-Frame-Options DENY and SameSite=Strict Secure HttpOnly cookie attributes were observed, with no secret exposure. |
be-private-and-securedata-minimisation-and-third-parties | pass | high | No known tracker domains or exposed secrets were found; six third-party requests were limited to fonts/CDN dependencies rather than analytics. |
be-private-and-securein-context-permissions-and-modern-auth | issues | high | The login route offers OTP after identifier plus CAPTCHA but no passkey/WebAuthn capability; the identifier field uses one-time-code and CAPTCHA uses new-password. F25 medium: Authentication lacks a phishing-resistant option and misuses autocomplete |
be-private-and-securedefensive-browser-policies | issues | high | The headers primitive found strong HSTS, XFO, nosniff and referrer policy, but no Permissions-Policy; style-src allows unsafe-inline. F26 low: Permissions Policy is absent and CSP retains unsafe-inline for styles |
be-resilientprogressive-enhancement | issues | high | Discoverability measured only 3% raw/rendered content coverage on home and 9% on login; both ship an empty #root and the crawler screenshot only says JavaScript is required. F27 critical: Core civic content disappears without JavaScript |
be-resilientresilient-runtime-behaviour | pass | high | Home and login routes rendered without horizontal clipping at mobile width; navigation to /login completed and controls remained usable. |
be-resilientoffline-and-installable | issues | high | The DOM probe found no web app manifest and the login route was not controlled by a service worker. F28 medium: The app-like portal has no installable/offline surface |
be-resilientnetwork-and-http-failure-states | issues | high | Requests for /robots.txt and /sitemap.xml both return HTTP 200 with the generic SPA HTML, showing that unknown infrastructure routes are not represented with correct content/status. F29 high: Missing infrastructure routes return misleading success shells |
be-internationalisedlang-dir-and-logical-properties | issues | high | The portal offers English and Hindi, but the document only declares lang=en, has no dir attribute, and the authored bundle probe found no logical CSS properties. F30 medium: Multilingual UI is not fully language- or direction-ready |
be-internationalisedlocale-aware-data | not-applicable | high | The audited anonymous surfaces expose no dates, currencies, numeric measurements, or recurring events requiring locale formatting; the year in a proper name is not locale-sensitive data. |
be-internationalisedtime-zone-correctness | not-applicable | high | No times, appointments, time zones, or recurring temporal data are exposed on the audited anonymous surfaces. |
be-trustworthyno-dark-patterns | pass | high | The entry and login routes show no consent nagging, confirmshaming, disguised ads, pricing, forced continuity, or preselected commercial choices. |
be-trustworthyhumane-error-handling | pass | high | The Request OTP action is disabled before required data is present and required fields are marked, preventing a premature invalid submission. |
be-trustworthytrustworthy-input-assistance | issues | high | The login identifier is marked autocomplete=one-time-code while CAPTCHA is new-password, neither matching the field purpose. F31 medium: Login autocomplete tokens obstruct input assistance |
be-trustworthysafe-commercial-and-account-flows | pass | high | No commercial/subscription flow is present; the observed account entry clearly distinguishes Login and Sign-Up and uses an explicit OTP request step. |
be-sustainableoptimised-assets | issues | high | The images primitive found 18 oversized images, 49 below-fold images without lazy loading, 13 missing dimensions and 8 legacy-format assets. F32 medium: Images are frequently oversized or lack efficient loading |
be-sustainableno-wasteful-work | issues | high | The page transfers 2.92MB, including 1.92MB scripts; Lighthouse estimates 776KiB unused JS, and an unauthenticated token-validation request returns 401 on load. F33 high: Large unused code and background validation waste resources |
be-sustainablethird-party-and-media-budget | issues | high | The HAR attributes 314.8KB to third parties and 308KB to fonts; one early-access font stylesheet alone transfers 272.7KB while Lighthouse says it is 100% unused. F34 medium: Font and third-party weight is disproportionate to the simple portal UI |
be-agent-readystructured-agent-capabilities | not-applicable | high | No declared agent-facing intent exists for this public portal, and WebMCP remains an emerging opportunity rather than a baseline requirement. |
be-agent-readyon-device-inference | not-applicable | high | No user task on the audited routes requires on-device inference; absence is not a quality failure. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | After ten full-page scroll cycles, heap decreased from 45,807,417 to 45,683,047 bytes and node count decreased from 721,862 to 721,592. |
be-memory-efficientbounded-footprint | pass | high | The measured retained heap was about 45.8MB for a substantial SPA portal and remained bounded after interaction. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | The before/after heap summaries contain no reported Detached* constructor and node/closure populations did not grow after repeated scrolling. |
Provenance
Canonical report: results/atomic/reports/0113-voters_eci_gov_in.json
Report SHA-256: 943d64b4f70a9be00b647906bce73b8d59112e2a6695c268bd674728202c1f5e
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/voters_eci_gov_in/2026-07-18T12-38-27-555Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/voters_eci_gov_in/2026-07-18T12-38-27-555Z
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.