Re: Making pt a non-physical unit

On Thu, Jan 14, 2010 at 1:01 PM, David Singer <singer@apple.com> wrote:

> I think the suggestion on the table is:
>
> A CSS pixel is defined in section 4.3.2 of <
> http://www.w3.org/TR/CSS21/syndata.html#length-units>, as a square
> containing an integer number of device pixels that, when viewed with a zoom
> setting of 1:1, subtends an angle at the eye most closely matching the angle
> subtended at the eye by 1/96 of an inch viewed from a distance of 28 inches.
>  (What happens if device pixels are non-square, as happens on TV?  Is it an
> integer number in the horizontal direction?)
>
> We then define that a CSS inch is exactly 96 CSS pixels, that there are 72
> CSS points to the CSS inch, 2.54 CSS mm, and so on. All the physical units
> relate on this notional viewing surface.
>
> We don't give access to true dimensions on the display surface (because not
> all displays have a well-defined surface, and for electronic and paper
> billboards the numbers would be really large, and so on). We don't give
> access to true pixels (because it's useless unless you either or both of the
> number of true pixels per true inch, or true pixels per CSS inch).
>
> I don't know if my colleagues agree, but I think this works for any display
> system - paper, screen, projected, etc.  It allows manufacturers to adjust
> based on expected or actual viewing distance.  Zoom is a separated question
> (yes, if the user asks for a 2:1 zoom, then things should look twice as
> large as at 1:1 zoom, surprise).
>
> The question is...does this 'work'?
>
>
Almost, but not quite.

Our experience is that users do not expect the size of a CSS pixel to be
different from one screen pixel by default. They do expect that content such
as form controls will be displayed consistently inside the browser and
outside it. Therefore attempts to automatically have CSS pixels approximate
a particular subtended angle (which we have tried) are not appealing. Making
CSS pixels different from screen pixels is something users should opt into,
preferably via a system-wide setting that affects the appearance of all
applications (e.g., "UI scaling" on Mac). So the spec needs to permit such
an approach.

Also, I think we have use cases for true dimensions. We might as well ensure
that 1px is 1/96 of an inch when printed, so that CSS absolute length units
take their expected values when printing. Exceptional circumstances like
printing massive billboards would be ... excepted. And for screen media I
think we still have the use-cases of touch interfaces and "life size"
diagrams which deserve a "true" unit.

Rob
-- 
"He was pierced for our transgressions, he was crushed for our iniquities;
the punishment that brought us peace was upon him, and by his wounds we are
healed. We all, like sheep, have gone astray, each of us has turned to his
own way; and the LORD has laid on him the iniquity of us all." [Isaiah
53:5-6]

Received on Thursday, 14 January 2010 01:02:35 UTC