From 6bcecb677120d89b3a47bbd2f2efb16277bd4537 Mon Sep 17 00:00:00 2001 From: "Dustin J. Mitchell" Date: Wed, 6 Sep 2023 11:51:22 -0400 Subject: [PATCH] Make Sec-CH-UA-Form-Factor a list, add meanings (#343) * Make Sec-CH-UA-Form-Factor a list, add meanings This adds non-normative meanings for the suggested values. * include entire list in note * fix fatal error * Update form-factor - Remove "VR" (as it is encompassed by XR) - Remove "TV" (as there is no current use-case for this value) - Include non-normative language around what a form-factor is and what the allowed values mean. This specifically refers to user interaction, as distinguished from screen-size or other physical aspects of the device. --- index.bs | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/index.bs b/index.bs index 87541b7..5f895f3 100644 --- a/index.bs +++ b/index.bs @@ -552,18 +552,43 @@ The header's ABNF is: The 'Sec-CH-UA-Form-Factor' Header Field {#sec-ch-ua-form-factor} ------------------------------ -The `Sec-CH-UA-Form-Factor` request header field gives a server information -about the [=user agent=]'s [=form-factor=]. It is a [=Structured Header=] whose value MUST be a -[=structured header/string=]. Its value SHOULD match one of the following common form-factor values: -"Automotive", "Mobile", "Tablet", "TV", "VR", "XR", "Unknown" or the empty string. -[[!RFC8941]]. +The `Sec-CH-UA-Form-Factor` request header field gives a +server information about the [=user agent=]'s [=form-factor=]. It is a +[=Structured Header=] whose value MUST be a [=structured header/list=] +[[!RFC8941]]. The header's values MUST be given in lexical order. + +The header SHOULD describe the form-factor of the device using one or more of +the following common form-factor values: "Desktop", "Automotive", "Mobile", +"Tablet", or "XR". All applicable form-factor values SHOULD be included. + +
+ +The form-factor of a user-agent describes how the user interacts with the +user-agent. The meanings of the allowed values are: + + * "Desktop" refers to a user-agent running on a personal computer. + * "Automotive" refers to a user-agent embedded in a vehicle, where the user + may be responsible for operating the vehicle and unable to attend to small + details. + * "Mobile" refers to small, touch-oriented device typically carried on a + user's person. + * "Tablet" refers to a touch-oriented device larger than "Mobile" and not + typically carried on a user's person. + * "XR" refers to immersive devices that augment or replace the environment + around the user. + +A new value should be proposed and added to the specification when there is a +new form-factor that users interact with in a meaningfully different way; a +compelling use-case where sites would like to change how they interact with +users on that device; and no reliable way to identify that new form-factor +using existing hints. -Note: A "desktop" form-factor would be represented by the empty string. +
The header's ABNF is: ~~~ abnf - Sec-CH-UA-Form-Factor = sf-string + Sec-CH-UA-Form-Factor = sf-list ~~~ The 'Sec-CH-UA-Full-Version' Header Field {#sec-ch-ua-full-version}