← Back to project catalogue
GP-CS-0HUE0LSComputer ScienceReady

TypeScript Indic web conformance laboratory

A multilingual browser laboratory for studying accessibility, language metadata, Unicode normalisation, grapheme-safe input, keyboard focus, and zoom behaviour across Indian scripts.

TypeScript Indic web conformance laboratory project visual
GP-CS-0HUE0LS · Computer Science
  • TypeScript 6
  • Fastify 5
  • Playwright 1.62
  • axe-core 4.13
  • Vue 3.5
  • SQLite
  • Docker

Project definition

Problem statement

A page can look correct in English and still fail when language metadata, combining sequences, shaped scripts, right-to-left text, keyboard focus, or enlarged content are introduced.

The engineering problem is to collect stable browser evidence, convert selected observations into clear finding codes, retain the evidence, and compare every result with an independently declared expected outcome without claiming complete website certification.

Project objectives

  • Build eight controlled local fixtures spanning seven languages and seven scripts.
  • Collect axe-core, DOM, language, Unicode, focus, zoom, computed-style, and screenshot evidence in Chromium.
  • Detect missing language metadata, accessible-name failures, unsafe grapheme limits, invisible focus, zoom overflow, non-NFC text, and missing font fallback.
  • Store completed runs in SQLite and present selectors, standards, severity, timing, and exact-match results clearly.
  • Measure prepared-corpus precision, recall, exact agreement, median duration, and P95 duration across five trials per fixture.

Project structure

Project components

01

Fixture catalogue

Restricts every browser destination to one of eight compiled local fixture identifiers with a declared language, script, font token, and expected code set.

02

Browser collector

Uses a fresh Chromium context to collect axe results, DOM facts, focus evidence, zoom behaviour, computed styles, and a screenshot.

03

Rule engine

Converts collected evidence into stable language, accessibility, Unicode, grapheme, focus, layout, and font finding codes.

04

Run store

Persists completed results and evidence JSON in SQLite through static parameterised statements.

05

Evaluation runner

Executes every fixture five times and calculates exact agreement, false positives, false negatives, precision, recall, median, and P95 duration.

06

Evidence interface

Vue presents the catalogue, fixture purpose, observed findings, selectors, standards, timing, screenshot reference, and retained history.

Methodology

Project workflow

  1. 01
    Select a prepared fixture

    The student chooses a documented local page and reviews its language, script, expected findings, and purpose.

  2. 02
    Collect browser evidence

    Playwright loads the fixture and captures accessibility, language, text-processing, focus, zoom, style, and screenshot evidence.

  3. 03
    Evaluate rules

    The rule engine maps the evidence to named finding codes with selectors, observed values, severity, and standards.

  4. 04
    Store and display

    The completed run is retained in SQLite and returned to the interface with its exact-match decision.

  5. 05
    Evaluate the corpus

    All eight fixtures run five times and the observed code sets are compared with the independent fixture declarations.

Demonstration scenario

The student first runs the compliant Hindi baseline and receives no findings. The Tamil fixture then exposes a UTF-16 maxlength applied to a grapheme-based requirement, the Telugu fixture exposes invisible keyboard focus, the Kannada fixture overflows at 200 percent zoom, and the Urdu fixture exposes invalid language metadata and a missing generic font fallback. Each observed code set is compared with its independent fixture declaration.

Engineering

Tools and method

Application core
TypeScript separates fixture declarations, browser collection, rule evaluation, persistence, and HTTP handling.
HTTP boundary
Fastify accepts prepared fixture identifiers only, enforces a 16 KiB body limit, and serialises expensive browser work through a single-job gate.
Browser evidence
Playwright and axe-core run one recorded Debian Chromium build against local fixtures at a fixed viewport and locale.
Text processing
DOM normalisation checks and declared grapheme intent expose selected differences between code units, code points, and user-perceived characters.
Persistence and interface
SQLite stores complete run JSON while Vue presents the evidence through a readable three-column laboratory.
Container isolation
Only Nginx is exposed on localhost; the API and browser remain internal, non-root, read-only, capability-free, and bounded by tmpfs and dedicated shared memory.

Testing

Evaluation

Evaluation measures

  • Five trials for every fixture and forty retained browser runs in total
  • Forty exact expected finding-set matches
  • Zero false positives and zero false negatives on the prepared corpus
  • Prepared-corpus precision of 1.0 and recall of 1.0
  • Separate per-fixture timing plus retained median and P95 duration
  • Unit, HTTP, persistence, Vue, accessibility, container, dependency, and image-security checks

Project boundaries

  • The project evaluates eight prepared local fixtures and never accepts an arbitrary destination URL.
  • The selected rules do not certify complete GIGW, WCAG, Unicode, browser, font, translation, or assistive-technology conformance.
  • The retained accuracy result applies only to the independently declared prepared corpus.
  • No personal information, buyer information, student information, account details, or external website content is collected.

Included

  1. 01Browser evidence collector and three-column conformance interface
  2. 02Eight prepared Hindi, Bengali, Tamil, Telugu, Kannada, Malayalam, and Urdu fixtures
  3. 03Language, accessible-name, Unicode, grapheme, focus, zoom, and font-fallback rules
  4. 04Forty retained browser runs with exact expected-result comparison
  5. 05SQLite run history and evidence-linked screenshots
  6. 06Complete source code in a private GitHub repository
  7. 0779-page project documentation in PDF and editable Word formats
  8. 0811-page setup and usage guide in PDF and editable Word formats

Project record

No information is collected on this page.

Permanent project ID
GP-CS-0HUE0LS
Catalogued
21 Aug 2026
Completed
23 Aug 2026
Verified
23 Aug 2026
Demonstration
Included in repository

Handover

After purchase

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.