Text Zoom

Introduction and Description

Written 2000.01.31

In b29 (hopefully available to you all tomorrow),
 we have a new feature: 

Text Zoom

Thanks to Jeffrey Zeldman for crystalizing into a short explanation what a lot
of others have tried to say or give feedback about.  In an email to the list
titled "Re: IE 5.01 Feature Requests" on 10 Jan 2000, Jeffrey wrote:

> allow users to make web type bigger or smaller, regardless of whether it
> is spec'd in pixels, points, ems, percentages, keywords, font size tags, or
> the secret language of plants.
>
>  think from the USER'S perspective.
>
>  they don't care how a page is authored (and they shouldn't care).
> if the type is too small, let them make it bigger. if the type is too big,
> let them shrink it.

One of the challenges of writing a web browser is properly balancing user vs.
author needs, wants and desires.  This is an area in which we had decided in
favor of the author ("1px" always equaling 1 LCD/CRT dot on the screen), but
have now moved closer to user after lots of internal discussion inspired by
the above-mentioned thread.

The result - a redesigned and rethought "Larger+ / Smaller-" text zooming user
interface that affects *all* text on the page (except in "text" gifs ;-{ ).

Essentially, we enable the user to "zoom" all the text on the page by a %
amount (defaulting to 100 obviously), regardless of whether it is "spec'd in
pixels, points, ems, percentages, keywords, font size tags, or the secret
language of plants."

This does not affect what "1px" means to other CSS properties.  Yes, this
feature can "warp" a web page in ways that designers/authors never expected
were possible.  This is the part about moving closer to user needs over author
needs in this area.

On 30 Jan 2000, Jeffrey wrote:

>  the issue i raised was not "rethink the type handling" but simply,
> IN THE FUTURE, consider adjusting the UI so the "middle" ground is always
> easily selectable, and obvious to any user, whether advanced or novice.

In b29, "Text Zoom" has replaced the former "Text Size" menu in the "View"
menu.

One thing Text Zoom has introduced is a range of % values in that new menu,
defaulting to 100% (in the middle of the range of % values).  Thanks to an
offline discussion with Todd Fahrner, and a bit of quick trial and tweak on
our part, we believe we have reasonable values in the range.

The currently selected value is checked with a checkmark "Ã".  Don't worry,
"Larger+" and "Smaller-" menu items and their cmd-key equivalents are still
there.

Getting back to Jeffrey's issue - because 100% is in the menu, the "middle"
ground is easily selectable.  And because 100% is in the middle of the range
of values, it is (hopefully) reasonably obvious to any user that 100% is the
middle value (presuming it is not too much of a deductive leap to go from
"middle of the menu / range of values" to "middle" ground).

But there is one more thing.  We *deliberately* chose to make the Text Zoom
value non-persistent and window-specific.

Non-persistent means if you quit and relaunch the browser, you get the default
of 100% text zoom in the browser window.

Window-specific means Text Zoom changes only apply to the current window.  If
you open a new window, it defaults to a Text Zoom of 100%.

But no, you might say, it *should* persist, and I *want* it to apply to all my
windows.

And here is where we balance towards the author a bit.

Text Zoom *warps* the page. Pixels (the "px" unit) in CSS no longer mean the
same "unit" when used across different properties etc.  In this way, it could
be said that Text Zoom does something very "unstandards compliant" with the
page when set to a value other than 100%.

In addition, when you use Text Zoom (at a value other than 100%), there is
almost no chance you are seeing what the author has intended you to see.

For these reasons, we do not persist or apply globally the Text Zoom settings.

By "gravitating" Text Zoom towards 100%, we make it easy for the user to get
back to the "middle" ground, to get back to what the web page was intended to
look like by the author.

*If* you find yourself using Text Zoom and wanting it to persist, it is likely
what you really want is to go into the Fonts Preferences and set your
preferred medium font size.  This does persist, and does apply globally across
all your windows.

You could think of changing your DPI, but this is not really a good idea, and
won't get you the effect you are really looking for (since the preferred
medium font size is a *pixel* value, it is not affected by DPI.  dependent
preferences are very confusing to users, so we kept these two independent).

As JimmyG has written previously, the new Adjustable DPI feature in MacIE5 is
there to do two things:

  1. Default to 96dpi - the dpi default that the vast majority of web pages
that have dpi dependent values depend on.  And the default pixel rasterization
recommended by the W3C CSS working group (reference pending on the change from
90 to 96 - It was at the February 1999 face to face meeting in Atlanta.)

  2. Enable users (like JimmyG) who happen to have higher resolution displays
to set their browser to render *physical* units (points "pt" are a *physical*
unit of 1/72") in a manner consistent with the true *physical* dimensions of
their display, rather than some long obsolete (read: no current or recent
shipping Macs conforming to) notion of 72dpi.  iMacs and iBooks are in the
high 80s.  A 21" monitor running at 1920x1080 is almost exactly 120dpi.

Changing DPI, since it is machine configuration specific preference, makes
sense to persist - once you have setup your machine with right pref for your
display - you don't want to have to change it.  And for the same reason, it
applies to all your open windows.

Bottom line on Text Zoom not-persisting - we *want* it to gravitate towards
100% so that through "normal" use, users will tend to see what web authors
intended for them to see.

On 30 Jan 2000, Jeffrey wrote:

>  i don't want to side-track these folks now, when they are working
> overtime to fix bugs and release the first browser that supports css-1 and
> html 4 ... and doing it on the Mac platform.  :)

Please, please, please continue to send in HTML4 and CSS-1 bugs that you find.

Yes, that is what we are focusing on now.  It really is too late to be making
such changes to the UI at this point in time.

Fortunately, the discussion ("sparring" ;-) we had on January 10th (see thread
"Re: IE 5.01 Feature Requests") was just barely in time to be able to make a
difference.  And, despite the fact that we still disagreed at the end of the
discussion thread, we were still listening, and relistening (rereading) the
feedback, and in response changed our minds, bit the bullet, invented the Text
Zoom feature, and designed it to solve the problems that had been pointed out,
while attempting to maintain the fidelity we have achieved in the engine and
the level of detailed user control with DPI and preferred medium font size.

>  i don't even want to annoy them by forcing them to respond to this
> thread. i just want them to keep doing what they're doing, or even -
> imagine - enjoy a sunday with their friends and family.

what a concept.  yes, shipping will hopefully allow us to do that as well.

i'm thinking of spring break in socal ;-)

And as far as a response, this email was meant to clarify and explain the
feature you will be soon seeing and using (and acknowledge and thank you for
your feedback and contributions) - this email was *not* meant to be an
invitation to a design discussion.

Get b29 and try it out.

In fact, I will be sending a more detailed message shortly on what kinds of
messages are more helpful and what kind are less helpful at this point in our
project cycle.

>  respectfully (for your great design work and your passion about
> this issue), i hope that you'll agree with me that the best thing to do,
> having raised the issue, is to now let it go and let these ladies and
> gentlemen finish their work.
>
>  thanks for listening,

thank you for all the concise, well-written feedback.

and of course,

>  thanks for sparring.
>
>  wouldn't do it if we didn't care and didn't want the best possible
> solution.

ditto.


Tantek

--