Browser.ai

A Centered Blob Beat Our Attention Model - What 495 Pages of Eye-Tracking Showed

Alexandria Eden
April 16, 2026
12 min read
A Centered Blob Beat Our Attention Model - What 495 Pages of Eye-Tracking Showed

Update, 4 August 2026. The headline finding on this page has been superseded by our own follow-up work, and we are leaving the original text intact below rather than quietly editing it.

What changed: the model described here scored 0.6567 against center bias at 0.6493. After three fixes β€” a blend weight that was seven times too high, Gaussian smoothing matched to foveal size, and a learned spatial prior we had simply never implemented β€” it now scores 0.7367 held out, against a human inter-observer ceiling of 0.8112. It also beats GPT-5.6 Sol and Claude Fable-5 on paired data. That is written up in We Beat Two Frontier Vision Models With Arithmetic.

Two specific claims below are now out of date:

  • "A screenshot has no DOM, so the majority of the production model never ran in any of these studies." It runs now. We built a deterministic OCR-based element extractor β€” no vision model, so the result stays attributable β€” and finally scored the 65% semantic channel. It beats the visual channel by 0.0649 AUC.

  • "The layer where persona differences could actually live has not been tested." It has been, across 32 personas and 495 pages. Persona genuinely moves the map (mean pairwise divergence 0.3849) but moves it at random with respect to where humans actually look (r = +0.172, p = 0.35), and 12 of 31 personas produce maps within 0.03 of the default. That is a worse result for the persona layer than this page anticipated, not a better one.

Two claims below hold up and are reinforced: center bias really is a hard baseline on web pages, and the persona parameterization really is structurally limited rather than merely untuned. The 2026-04 retraction and the three defects that caused it stand exactly as written.

The blend ratio quoted below as 35%/65% is now 20%/80%.

We rebuilt our saliency benchmark so it scores the code we actually ship, then re-ran it against 495 web pages and the eye movements of 62 people. Four things came out of it, and the most useful one is not the number we expected to report.

1. A centered blob beats our attention model on web pages

MethodAUC-JuddNSSCC
elderly0.58640.18940.0817
neurotypical0.58540.25820.1089
dyslexic0.58280.16500.0729
power user0.58170.24700.1056
low vision0.58170.17390.0763
ADHD0.58170.28330.1205
Center bias0.65800.53730.1872
Random0.51030.01970.0069

N=495 pages, ground truth is real fixation points from 554 participant logs. Paired per page, center bias wins by 0.073 AUC (t=14.6) on 78% of individual pages. Not a near-tie, not an averaging artifact.

Center bias is a much harder baseline on web than most people assume. In natural-scene saliency it's the standard strong prior because photographers put subjects in the middle. On web pages it gets extra help from three directions at once: layout convention puts the logo, hero, and primary CTA top-and-center; viewers start fixating at the center of a newly presented screen; and a screenshot can't be scrolled, so nothing pulls attention off-axis later in the trial.

If you are building anything that predicts where people look on a page, this is the number to beat first. We assumed we had beaten it. We had not.

2. Persona filters change the map enormously and its accuracy not at all

This is the finding we did not anticipate and the one we would most want another team to check.

The six persona filters are not inert. On a single page, total attention mass ranges from 80.6 for the dyslexic profile to 367.1 for ADHD β€” a 4.5x spread β€” with per-cell differences up to 0.40 on a 0-1 scale. These are visibly, dramatically different heatmaps.

Their agreement with human fixations differs by less than 0.005 AUC. All six personas land between 0.5817 and 0.5864.

So the persona layer moves attention around a great deal without moving it anywhere more correct. It is redistribution, not prediction.

The three metrics also disagree about which persona is worst: ADHD is tied-lowest on AUC while being the best persona on NSS and CC. AUC, NSS and CC are reported together precisely because they catch different failure modes (Bylinskii et al., 2019). When they point in opposite directions, the honest reading is that no persona effect has been detected β€” not that two out of three win the vote.

3. Why: four global knobs can't encode which things a population looks at

Our persona perceptual filter exposes four parameters β€” exponent, bias, center bias, threshold. Each applies one global reweighting to the whole map. They can make attention broader, tighter, or more central.

They cannot express what kind of thing draws a given population's eye. And that is what the actual literature on population differences describes: autistic viewers show reduced attention to faces and social content and increased attention to background objects (Wang et al., Neuron 2015). That is a categorical difference about content, not a global reshaping of a contrast map.

We hit the same wall from the opposite direction in a separate study. Using Saliency4ASD β€” which records autistic and typically-developing children viewing the same images β€” we fitted the four parameters to each group independently on a held-out split. Both groups converged on the identical parameter set, and cross-applying them changed the score by exactly zero. The fit did improve absolute accuracy a lot (0.6223 to 0.7472), but every bit of that gain was generic: the optimizer pinned center bias at its maximum and the exponent at its minimum, which together spell "a broad central blob."

Two independent studies, one conclusion: this is a structural limit of the parameterization, not a tuning problem. No amount of fitting repairs a knob that cannot represent the effect.

4. What Schwartz value modulation actually does (Study 1b)

Study 1b asked which layers move when motivational values are added to the cost model, and by how much.

PersonaCTC ChangeWhich layer moved
Power User-20.0%Decision -0.279, Saliency -0.100
ADHD+10.7%Saliency +0.031, spread across all layers
Neurotypical-14.3%Saliency -0.076, Decision -0.059
Dyslexic-12.1%Decision -0.070, Saliency -0.058
Low Vision-7.1%Decision -0.070
Elderly-5.5%Decision -0.044, Saliency -0.036

The Decision layer absorbs most of the change, by a wide margin β€” which tracks, since 5 of the 14 coefficients target Decision-layer traits.

Two things to be precise about. First, these are model outputs compared to model outputs: the same cost function evaluated with the modulation term and without it. There is no human data in Study 1b. It is a sensitivity analysis β€” genuinely useful for knowing which layers your value profile will move β€” and it is not a measurement of how people with those values experience a page. Every delta is significant at p < 0.001 because we added a non-zero term to a function and then checked whether the output changed; arithmetic guaranteed that.

Second, value modulation slightly reduced differentiation between personas rather than increasing it: cross-persona variance fell from 0.141 to 0.138, a 1.7% decrease. We expected values to spread the personas apart. They compressed them, because the power user's large drop pulls that profile toward the middle and the ADHD increase does not offset it.

What we still can't say

All of the above tests one layer β€” bottom-up visual saliency β€” on static screenshots. On a live page, our attention model blends 35% bottom-up saliency with 65% DOM semantics: element type, persona priority, goal relevance. A screenshot has no DOM, so the majority of the production model never ran in any of these studies. Every prediction here was generated in visual-only mode.

That semantic layer is where a persona difference could plausibly live, and it is untested in either direction. Testing it needs eye-tracking data from labeled populations on interface stimuli, and as of a July 2026 survey no such public corpus exists. Collecting it ourselves looks like the realistic path.

How the benchmark was wrong before

Our April results reported the opposite conclusion β€” that the model beat center bias 0.663 to 0.615. Three defects produced that, and they are worth naming because they are easy to repeat:

The benchmark scored a reimplementation, not the product. The harness used a Python "port" of our saliency function. It had drifted: our TypeScript weights chrominance 3x over luminance; the port summed all three color channels equally. Both files were written the same day.

We can isolate exactly how much that mattered. Running the shipped model under the original flawed protocol still scores 0.585, not 0.663 β€” while the baseline reproduces within 0.012. Fixing the evaluation protocol moved the model by 0.0001. It moved the baseline. So 0.663 was a property of the port; the product never scored it.

The "fixation map" wasn't fixations. The metric took every pixel with nonzero value in a Gaussian-smoothed density image as a fixation β€” 18.8% of all pixels. AUC-Judd is defined over discrete fixation points. The dataset ships 554 raw eye-tracker logs and the harness even contained a parser for them; it was never connected to the metric.

A tie-handling bug in the AUC code. It assigned the i-th sorted fixation a true-positive rate of i/n regardless of ties, which is only valid if every fixation sits at a distinct value. Combined with the defect above, ties were everywhere.

The fix is structural rather than a patch: metrics now live in src/visual/saliency-metrics.ts as part of the shipped package, unit-tested against analytic answers β€” a perfect predictor must score 1.0, a flat map exactly 0.5, an inverted map CC of -1. Writing those tests to theory rather than to whatever the code printed last time is what caught the tie bug. A test asserting "flat map scores 0.5" fails loudly; a test asserting "flat map scores 0.25, same as last run" passes forever.

Corpus parsing moved into src/ too, and predictions now come from analyzeAttention, the shipped entry point. There is no port left to drift.

One habit we'd recommend to anyone doing this: before trusting a single metric, check that your fixation coordinates land where the dataset says people looked. Mean ground-truth density at our fixation coordinates is 3.54x the global mean. A broken coordinate mapping reads about 1.0, and would have invalidated everything downstream.

Why publish this

A benchmark you only trust when it flatters you isn't a benchmark. We found this by re-running our own numbers against our own shipped code, which is the entire point of having one.

The honest state of the evidence today: our bottom-up saliency layer does not beat a center-bias prior on web pages, the persona perceptual filter redistributes attention without improving it, and the layer where persona differences could actually live has not been tested. That is less than we claimed in April and more than we knew.


See It at Scale: The 200-Site Benchmark

We ran CBrowser's agent-ready audit on 200 of the most recognizable websites across 41 industries β€” from Amazon to Zara β€” using residential proxies from 3 US regions.

RankSiteGradeScoreIndustry
1Gap, Sephora, H&M, ASOSA94Fashion
2Home Depot, Lowes, PetcoA94Retail
3Tesla, Epic Games, ESPNA94Mixed
4Venmo, Coinbase, OpenSeaA93-94Fintech
5IMDB, Medium, ReutersA93-94Media

Fashion is perfect β€” all 8 sites scored A-grade. Amazon dropped to F (58) with heavy JS overlays. Cloud providers fail β€” AWS (44/F), Google Cloud (47/F). Healthcare and Finance average below 56.

These are agent-readiness measurements: semantic HTML, overlay clutter, anti-bot friction, measured directly. (An earlier version of this post claimed the value-driven attention model "explains why" these scores differ. It doesn't β€” that was a model-to-model inference with nothing linking it to the audit. The audit stands on its own measurements.)

Explore the full 200-site benchmark


Full methodology, per-layer tables, persona profiles, and the superseded April results: Study 1 on cbrowser.ai

CBrowser β€” cognitive browser automation. 130 MCP tools, 25 cognitive traits, 10 motivational values. We publish our negative results.


Post updated July 29, 2026. The April version framed Study 1b as a finding about how people with different values experience websites; it measured model output against model output. Title, framing, and two figures corrected, and the Study 1 re-run above supersedes the April benchmark results.

References

  • Jiang, Y., et al. (2023). UEyes: Understanding visual saliency across user interface types. Proc. CHI '23. ACM.

  • Bylinskii, Z., et al. (2019). What do different evaluation metrics tell us about saliency models? IEEE TPAMI, 41(3), 740-757.

  • Tatler, B.W. (2007). The central fixation bias in scene viewing. Journal of Vision, 7(14):4.

  • Wang, S., et al. (2015). Atypical visual saliency in autism spectrum disorder quantified through model-based eye tracking. Neuron, 88(3), 604-616.

  • Duan, H., et al. (2019). A dataset of eye movements for the children with autism spectrum disorder. Proc. ACM MMSys '19.

  • Schwartz, S.H. (1992). Universals in the content and structure of values. Advances in Experimental Social Psychology, 25, 1-65.