From 79418fcce900f95ec89210388179e085d65bb003 Mon Sep 17 00:00:00 2001
From: Rogerme22 <135544558+Rogerme22@users.noreply.github.com>
Date: Thu, 1 Oct 2026 09:02:26 -0300
Subject: [PATCH] Minimize fingerprintable bits in screen labels
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---
HOWTO.md | 4 +---
index.bs | 4 ++--
security_and_privacy.md | 7 +++++++
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/HOWTO.md b/HOWTO.md
index 1ecbfdc..bea69c3 100644
--- a/HOWTO.md
+++ b/HOWTO.md
@@ -52,6 +52,4 @@ async function main() {
- Chrome 103+ supports this enhancement with this flag enabled:
- `chrome --enable-blink-features=CapabilityDelegationFullscreenRequest`
-[Accurate Screen Labels](https://chromestatus.com/feature/6317530778959872) refines the `ScreenDetailed.label` implementation by replacing the current placeholder values (e.g. 'External Display 1') with data sourced from display device EDIDs (e.g. 'HP Z27n') and higher-level OS APIs (e.g. language localized 'Built-in Retina Display'). These more accurate labels match those shown by OSes in display settings UI surfaces. Test this by observing the screen label strings displayed in the [window-placement-demo](https://michaelwasserman.github.io/window-placement-demo).
- - Chrome 104+ supports this enhancement on some OSes with this flag enabled:
- - `chrome --enable-blink-features=WindowPlacementEnhancedScreenLabels`
+[Screen Labels](https://w3c.github.io/window-management/#api-screendetailed-interface) are intended to be short, user-facing names that help distinguish displays without exposing stable hardware identifiers. Implementations should prefer generic labels such as 'Built-in Display' or 'Display 2', and avoid exposing monitor model names, serial numbers, vendor branding, or other per-device identifiers. The label may be empty when the user agent cannot provide a non-identifying name for the screen.
diff --git a/index.bs b/index.bs
index 18fc771..00191d1 100644
--- a/index.bs
+++ b/index.bs
@@ -275,10 +275,10 @@ A [=/screen=] has an orientation, which is described in [[screen-orie
A [=/screen=] has a label, which is a string that meaningfully describes the screen to a user to help them identify and differentiate screens.
-Note: The [=screen/label=] can be an arbitrary string selected by the user agent. It could describe the screen relative to the device, e.g. `"internal"` vs. `"external"`, it could include the dimensions, e.g. `"640×480"`, it could include hardware model information, e.g. `"Acme Telletube 1000x"` from [VESA E-EDID](https://en.wikipedia.org/wiki/Extended_Display_Identification_Data) data, it could include a distinguishing number, e.g. `"screen 1"` vs. `"screen 2"`, or all of the preceding. The label can be an empty string if underlying display details are unknown or the user agent chooses to hide that information. Applications can't assume that the label contains any specific information, such as the device type, model, dimensions, density, etc.
+Note: User agents are expected to minimize entropy in [=screen/label=] values. The label is intended to be a short, user-facing identifier that helps a user distinguish one display from another without disclosing useful fingerprinting data. In particular, user agents must not include the display's serial number, hardware model or vendor name, or other stable device-identifying metadata in the label. The label can instead use generic names such as `"Built-in Display"`, `"Display 2"`, or a localized equivalent. If no non-identifying label is available, the label can be the empty string.
-Advisement: While many screen attributes could be used for [=/active fingerprinting=], the strings used as [=screen/labels=] in particular should be considered carefully to minimize the uniqueness. For example, it would be a poor choice to include the serial number of the device.
+Advisement: While many screen attributes could be used for [=/active fingerprinting=], the strings used as [=screen/labels=] in particular should be considered carefully to minimize uniqueness. Labels that include a monitor serial number, model branding, or other per-device identifier would be poor choices and should be avoided.
Issue: Should [=screen/device pixel ratio=] include the [page-zoom](https://drafts.csswg.org/cssom-view-1/#page-zoom)?
diff --git a/security_and_privacy.md b/security_and_privacy.md
index 86ae2b9..3d6fbb3 100644
--- a/security_and_privacy.md
+++ b/security_and_privacy.md
@@ -61,6 +61,13 @@ permission, limited to secure contexts, top-level frames, gated by user gesture,
active window contexts, and other protections to help mitigate concerns around
[fingerprinting](https://w3c.github.io/fingerprinting-guidance).
+In particular, `ScreenDetailed.label` should be treated as a short, user-facing
+name for display selection rather than as a source of stable hardware
+information. User agents should prefer generic labels such as "Built-in
+Display" or "Display 2" and avoid exposing monitor model names, serial
+numbers, or other per-device identifiers that would increase the fingerprinting
+surface.
+
The amount of information exposed to a given site would be at the discretion of
users and their agents. Exposing the full set of proposed information (with user
permission) enables web applications to offer compelling functionality, but