ScrapeTraceCHECKS

KEYBOARD LAYOUT OBSERVATIONS

Which layout
answered?

Read the characters assigned to physical key positions. Compare the complete map with Chromium’s US fallback table and inspect the keys that distinguish common US platform profiles.

Not measured. Waiting for JavaScript.

RETURNED MAP

Not measured yet

No keyboard-layout readings have been collected.

Writing-system key positions

— / 50
Returned characterHighlighted: international positionsDashed: absent from map
Schematic key positions, not detected hardware. Hover or focus a key to read its code. Space, modifiers, function keys and the number pad are outside the 50 writing-system positions.

Full map and reference comparison

Characters are unshifted mappings, not captured keystrokes. Absent and present-with-empty-value are different. Mobile configuration → · Cross-context User-Agent check →

All 50 writing-system positions, including missing keys
Physical codeReturned valueUS fallback referenceComparison
Method and limits

This calls navigator.keyboard.getLayoutMap() automatically once, with a five-second deadline. The secure-context requirement, API absence, missing method, rejection, empty map, timeout and usable map are separate outcomes. They do not identify a browser brand by themselves. A missing or empty map is not proof of Android, and a fallback match is not proof of headless mode.

The fallback comparison checks all 49 expected entries and their exact values, including IntlBackslash = <, IntlYen = ¥ and IntlRo absent. Merely returning 49 entries or containing a yen key is insufficient. The reference is Chromium 152.0.7977.82; other builds may change it. Custom layouts and JavaScript/native modifications can reproduce the same map.

The platform profile is considered only when all 47 regular letter, digit and punctuation positions match the reference US arrangement, the map has exactly 48 entries with both IntlYen and IntlRo absent, and the full fallback map does not match. IntlBackslash = §, backslash or < then resembles the documented macOS, Windows or Linux/ChromeOS US profile, respectively. Layout-dependent resemblance does not attest the native backend. UK, AZERTY, QWERTZ, JIS, Brazilian and custom layouts must not be assigned an OS from one edge key. Fallback origin remains unknown and platform compatibility is not assessed for that result.

The top-row label describes six physical positions, not the entire layout. A layout map describes Chromium’s selected layout, not necessarily the active typing layout or physical keyboard. No typing, keyboard lock or event recording is used. The return-object name and native-code marker are diagnostics and can be imitated.

Collection starts while the document is parsing. A bounded completion gate holds navigation load until the initial result or a timeout has been rendered; three temporary hosting requests keep network-idle waits from finishing before load. No keyboard readings are uploaded. Reruns replace the local snapshot. Wait for load or #probe-complete[data-status="complete"] before capturing HTML. The visible map, tables and #report-json retain the result in rendered HTML.

Sources and attribution

Inspired by Joe Rutkowski’s Browser Nerds keyboard-layout investigation. Its platform examples are author-reported observations, not new ScrapeTrace measurements. ScrapeTrace independently implements the collection, map comparison and interface.

Reference data adapted from Chromium’s US table and writing-system key list, under the Chromium BSD license. Fallback Linux UI · API documentation · Source.

Complete result JSON
Not measured.