1. Summary
DysTest is a browser-based dyslexia screening that runs on an ordinary laptop with a standard webcam and microphone. Instead of relying on one signal, it combines several independent behavioural measurements, taken while the participant completes short reading and language tasks:
- Eye movements while reading and searching (webcam eye-tracking),
- Naming speed and accuracy spoken aloud (Rapid Automatised Naming, with speech recognition),
- Reading comprehension of two short stories,
- Spelling and typing behaviour while writing words (keystroke dynamics).
Each task produces its own score, and the scores are combined into one weighted 0–10 screening result with a confidence value. The design principle throughout is to measure how someone reads — the direction, timing and rhythm of behaviour — rather than depending on precise absolute gaze position, which a webcam cannot deliver.
DysTest is a screening tool, not a diagnosis. Its results indicate whether further professional assessment is advisable.
2. Assessment pipeline
A complete assessment takes about 15–20 minutes and runs in this order:
| Step | What happens | What is measured |
|---|---|---|
| 1. Setup | Camera, keyboard and microphone check; face position and distance (max. 60 cm) | Camera frame rate, face tracking quality, distance, image brightness, microphone level |
| 2. Calibration | 16 training dots, then 8 validation dots, in full screen | Personal gaze model; measured accuracy on the validation dots |
| 3. Word-Icon matching | Match written words to pictures | Accuracy, decision time, where the eyes search before answering |
| 4. RAN | Name rows of letters, digits, colours and objects aloud (4 × 5 rows) | Naming time per row, pauses, errors from speech recognition, gaze along the rows |
| 5. Stories | Read two short passages (one for the youngest age group), then answer questions | Reading time, regressions (looking back), line returns, comprehension |
| 6. Word writing | Type dictated words | Spelling errors and their type, inter-key timing, corrections |
Environment checks guide the participant before the test starts. The camera frame rate is measured directly (target ≥ 20 frames per second); lighting is estimated from the brightness of the camera image, which is a useful guide but not a calibrated lux measurement, because webcams automatically adjust exposure.
3. Four measurement channels
3.1 Eye movements
Face and iris landmarks are detected with MediaPipe (478 landmarks per frame). A personal calibration model (thin-plate spline regression, see the separate paper on calibration) maps iris geometry to screen coordinates; its real accuracy is estimated with leave-one-out cross-validation and the validation dots. From the gaze stream, DysTest derives fixations (dispersion-threshold method), saccades, regressions within a line and return sweeps to the next line. No WebGazer or infrared hardware is used.
3.2 Speech (RAN)
During Rapid Automatised Naming, each row is recorded separately and transcribed by server-side speech recognition. The transcript is aligned with the expected items to count omissions, substitutions and self-corrections; naming time and pauses come from the recording itself. Rows without audible speech are never sent for recognition, so silence cannot be mistaken for an answer.
3.3 Reading comprehension
Comprehension questions after each story measure whether the text was understood, independently of how fast it was read. For scoring, reading behaviour is taken from the first reading of each story; later re-reads (when a child goes back to look for an answer) are recorded but not scored as reading speed.
3.4 Spelling and typing
Word writing records every keystroke. Spelling errors are classified (for example phonologically plausible errors versus letter-order errors), and timing features such as hesitation before difficult letters and correction patterns are measured. This channel does not depend on the camera at all.
Facial expression is recorded as context for the reviewer; it is not part of the score.
4. Why combine channels
Every channel has blind spots: gaze degrades in poor light or with large head movements, speech needs a reasonably quiet room, typing is less informative for very young children. Because the channels measure different behaviours with different error sources, combining them is more robust than any single one — and a weak or missing channel lowers the confidence of the result instead of silently distorting it.
DysTest combines the five task scores (Word-Icon, RAN, Story 1, Story 2, Word Writing) into a weighted composite on a 0–10 scale, reported in four bands: typical (≤ 3), mild (3–5), strong (5–7.5) and significant (> 7.5) indicators. Tasks that could not be measured reliably are left out and their weight is redistributed; the confidence value shows how complete and reliable the measurement was.
4.1 Illustrative model: the effect of combining channels
The table below is a theoretical model, not a measured result. It shows how the chance of missing a true case shrinks when several partially independent channels each contribute, assuming the per-channel sensitivities shown and a simple "at least two channels agree" decision. Real channels are partly correlated, so measured performance will be lower; the actual figures will come from the validation study in section 7.
| Scenario (model) | Eye movements | Typing | Speech | Comprehension | Combined (≥ 2 of 4, model) |
|---|---|---|---|---|---|
| Conservative | 85% | 80% | 75% | 70% | 96.4% |
| Moderate | 90% | 85% | 80% | 78% | 98.5% |
| Design target | 95% | 90% | 88% | 85% | 99.6% |
5. Tolerance to webcam gaze noise
Webcam eye-tracking is typically accurate to 2–5 degrees of visual angle (DVA), far coarser than laboratory infrared trackers. DysTest's reading measures are chosen so that they stay usable at this accuracy:
- Saccade direction is a movement vector: a forward or backward jump of a word or more remains detectable even with large per-sample noise.
- Fixation duration is a timing measure: position noise does not change how long the eyes rest.
- Return sweeps (end of line back to the start of the next) are large leftward jumps that are easy to separate from short within-line regressions, even when individual lines cannot be told apart vertically.
On a 14″ laptop (1920 × 1080) at 60 cm, one degree of visual angle is about 65 pixels. The following table is a design estimate of how much of each measure is preserved as noise grows; it will be measured directly in Study 3 (section 7).
| Gaze noise (DVA) | ≈ Pixels | Absolute position usable (estimate) | Movement direction usable (estimate) | Fixation duration usable (estimate) |
|---|---|---|---|---|
| 1 | 65 | 85% | 100% | 99% |
| 2 | 130 | 70% | 100% | 99% |
| 3 | 195 | 55% | 92% | 99% |
| 5 | 325 | 25% | 76% | 99% |
| 7 | 455 | 0% | 60% | 99% |
The same model applied to the combined result (with the speech, typing and comprehension channels unaffected by gaze noise) predicts that the combined sensitivity changes little up to 5 DVA:
| Gaze noise (DVA) | Eye movements (model) | Typing | Speech | Comprehension | Combined (model) |
|---|---|---|---|---|---|
| 1 | 93% | 90% | 88% | 85% | 99.5% |
| 3 | 88% | 90% | 88% | 85% | 99.3% |
| 5 | 80% | 90% | 88% | 85% | 99.0% |
| 7 | 70% | 90% | 88% | 85% | 98.6% |
These figures describe the design principle — graceful degradation as gaze quality drops — not validated accuracy.
6. Technical summary
| Component | Specification |
|---|---|
| Platform | Browser application (React / TypeScript); desktop or laptop |
| Face and iris tracking | MediaPipe face landmarker, 478 landmarks |
| Gaze model | Personal thin-plate spline calibration: 16 training + 8 validation points |
| Fixation detection | Dispersion threshold (I-DT) |
| Camera requirement | Standard webcam; frame rate measured during setup (target ≥ 20 fps) |
| Lighting | Estimated from camera image brightness; guidance shown when too dark |
| Speech | Device microphone; server-side speech recognition per RAN row |
| Languages | English, Dutch, German, French, Spanish, Italian, Portuguese, Hindi |
| Result | Weighted 0–10 composite of five task scores, four bands, with confidence |
7. Status and validation roadmap
During the beta (to October 2026) more than 200 assessments were completed, most in English and Dutch, with a predominantly adult cohort and a growing number of children. Diagnostic ground truth is available for a subset. Sensitivity and specificity have not yet been validated; the design targets are ≥ 96% sensitivity and ≥ 90% specificity.
Study 1 — Ground-truth validation (priority). At least 100 participants, balanced between people with and without a professional dyslexia diagnosis. Report sensitivity, specificity, positive and negative predictive value and AUC-ROC. This turns the targets above into measured values.
Study 2 — Channel ablation. Score the same assessments with eye movements only, then adding typing, speech and comprehension, to quantify what each channel adds.
Study 3 — Gaze-noise tolerance. Add controlled noise of 2, 3, 5 and 7 DVA to recorded gaze data and measure how the results change, replacing the estimates in section 5 with measurements.
Study 4 — Fairness. Compare results across age groups, languages, glasses versus no glasses and skin tones, to confirm that accuracy is stable across groups before wider school deployment.
8. Intellectual property
Five priority patent applications covering the DysTest assessment pipeline were filed at the German Patent and Trade Mark Office (DPMA, Munich) in September 2026, including the tighten-only corroboration method co-invented with Christian Boer.
9. Cost
A professional dyslexia assessment in Europe typically costs €800–2,800. DysTest provides a multi-channel screening for under €50 per participant, with only a standard laptop, webcam and microphone — no specialised hardware, clinic visit or trained administrator. A positive screening result should be followed by a professional assessment.