Closed Bug 979323 Opened 6 years ago Closed 4 years ago

Add telemetry probe for the “Zoom Text Only” feature

Categories

(Core :: Layout, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla50
Tracking Status
firefox50 --- fixed

People

(Reporter: w, Assigned: claas)

Details

(Whiteboard: [measurement:client:tracking])

Attachments

(1 file, 2 obsolete files)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36

Steps to reproduce:

Checked http://telemetry-dash.mozilla.org/ to see if there is any information on whether users ever touch the “Zoom Text Only” feature in the “View”->“Zoom” menu of Firefox.

My hypothesis is that this feature is not commonly used and is not worth optimizing web sites for, but I have no data to dispute or confirm my hypothesis.


Actual results:

No such information exists.

(Actually, now I can't access that page anymore without a @mozilla.com address. But that's beside the point. :)


Expected results:

Data for the usage of the “Zoom Text Only” feature should be available.

I'm willing to pay in alcoholic beverages, chocolate or cash to any Mozillan that can help with this, as I'm not sufficiently familiar with the codebase to dare doing a patch myself. :)




Here's some context from #whatwg several months ago:

# [16:48] <wilhelm> Does Mozilla have any statistics on how often Firefox features are used? (I'm wondering whether anyone uses the 'zoom text only' feature.)
# [16:48] <Ms2ger> wilhelm, we can get that set up
# [16:52] <wilhelm> Ms2ger: That would be very interesting. The reason for why I'm wondering is this: Using media queries, I essentially have four different designs for sites I'm building. I have a 4-column, 3-column, 2-column and 1-column design. They sort of map to the screen sizes of a laptop, a landscape tablet, a portrait tablet and a phone. If you zoom in with the normal page zoom, the page magically reformats to fit your screen. A zoomed page on a laptop may ...
# [16:53] <wilhelm> ... give you the 2-column layout, which is readable and nice.
# [16:53] <wilhelm> If you use the "zoom text only" feature, you're screwed with this approach.
# [16:53] <Ms2ger> hsivonen has set up something like that for the encoding override menu, I suppose he can give pointers
# [16:55] <wilhelm> Ooh.
# [16:55] <wilhelm> hsivonen: I'll buy you a case of beverages of your choice in exchange for information here. (c;
# [17:01] <hsivonen> wilhelm: http://telemetry-dash.mozilla.org/
# [17:01] <hsivonen> wilhelm: I don't see a variable for that in the middle menu
# [17:01] <hsivonen> wilhelm: could be added
# [17:02] <hsivonen> wilhelm: http://mxr.mozilla.org/mozilla-central/search?string=gatherCharsetMenuTelemetry for example code
Component: Untriaged → Telemetry
Product: Firefox → Toolkit
Assignee: nobody → mozilla
Comment on attachment 8742934 [details] [diff] [review]
Add telemetry probe for the “Zoom Text Only” feature

I have added the requested telemetry probe for the "Zoom Text Only".

However, I'm not sure how to account for the current value of the "browser.zoom.full" preference. My approach therefore only measures new users of the "Zoom Text Only" feature, not existing ones. Any advice?
Attachment #8742934 - Flags: feedback?(gfritzsche)
Sorry for the delay.
Before checking into details:
* do you know who would be monitoring this?
* what exact question do we want to answer from that?

See here for more background on the data collection requirements:
https://wiki.mozilla.org/Firefox/Data_Collection
(In reply to Georg Fritzsche [:gfritzsche] from comment #3)
> * do you know who would be monitoring this?
> * what exact question do we want to answer from that?

I would want to monitor this. (I'm not a Mozilla contributor, but a former browser engineer now leading an independent development agency.)

I want this exact question answered: How many people use the “Zoom Text Only” feature compared to the number of people using zoom at all? 

My rationale:

A lot of ancient accessibility guidelines dates back to when changing font sizes was the only way to enlarge content. Since then, browsers have all added full page zoom (2006-2010). Combined with responsive designs (where web pages adapt to the screen size), this is a much more powerful way of making content readable.

My hypothesis is that the best approach for building web content where the user can enlarge content is to ignore text only zoom, and focus on building great, responsive content. I expect a negligible fraction of zooming users to use this particular feature, but have no data to support this claim. (If that is true, I think we should kill this feature.)

Either way, getting telemetry on this feature will allow us to draw qualified conclusions on how people use accessibility features, and help shape guidelines for tomorrow.
Sounds like a compelling use-case to me.

If I understand your data question correctly, you'll just need a snapshot of time, so not expiring the probe until 60 seems a bit excessive. Maybe 52, instead?

As for catching the values of a user preference, I'd usually suggest putting them in the userPrefs block of the Telemetry Environment... but that will make it harder for you to access, as we haven't yet developed a way to make environment aggregations available (that I know of). I don't know of any current ideal patterns for histogramming a user preference... but I do know that clearing a histogram is not the best form.

Maybe adding it to the userPrefs block is the correct solution, and we need to provide an aggregation job so that you can get your data when you want it (and so others can get data when they want it). +bsmedberg for the data questions of "Is this acceptable collection?" "Is this acceptable use?" and "What is a good way to make this data available?"
Flags: needinfo?(benjamin)
Yes, a snapshot of time is sufficient.
Recording the pref in the userPrefs is reasonable, although you should know that this won't capture pref defaults changed by *addons*: it will only capture pref changes by users. So if there are addons which change to text zoom by default, that will skew your analysis.

The best way to make this data available after the fact is to write the query on redash and provide the public link.
Flags: needinfo?(benjamin)
Component: Telemetry → Panning and Zooming
Product: Toolkit → Core
Text zoom is covered by Layout.
Component: Panning and Zooming → Layout
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #7)
> Recording the pref in the userPrefs is reasonable, although you should know
> that this won't capture pref defaults changed by *addons*: it will only
> capture pref changes by users.

The userPrefs (i.e. preferences that we monitor and record) are listed here:
https://dxr.mozilla.org/mozilla-central/rev/3e8ee3599a67edd971770af4982ad4b0fe77f073/toolkit/components/telemetry/TelemetryEnvironment.jsm#110

We should document the background here (and note that we only need to collect it for a limited time):
https://dxr.mozilla.org/mozilla-central/rev/3e8ee3599a67edd971770af4982ad4b0fe77f073/toolkit/components/telemetry/docs/environment.rst#300
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Mac OS X → All
Hardware: x86 → All
Whiteboard: [measurement:client:tracking]
Attachment #8742934 - Flags: feedback?(gfritzsche)
Attachment #8762577 - Flags: review?(gfritzsche)
Attachment #8742934 - Attachment is obsolete: true
Comment on attachment 8762577 [details] [diff] [review]
Add "Zoom Text Only" preference to environment telemetry

Review of attachment 8762577 [details] [diff] [review]:
-----------------------------------------------------------------

::: toolkit/components/telemetry/TelemetryEnvironment.jsm
@@ +118,5 @@
>    ["app.update.service.enabled", {what: RECORD_PREF_VALUE}],
>    ["app.update.silent", {what: RECORD_PREF_VALUE}],
>    ["app.update.url", {what: RECORD_PREF_VALUE}],
> +  // Record "Zoom Text Only" pref in Firefox 50 to 52 (Bug 979323).
> +  ["browser.zoom.full", {what: RECORD_PREF_VALUE}],

This map is alphabetical by key. Maybe put this at the end of the browser.*?
Also, make sure to have a feedback? for bsmedberg for the official data-review?
Comment on attachment 8762577 [details] [diff] [review]
Add "Zoom Text Only" preference to environment telemetry

Review of attachment 8762577 [details] [diff] [review]:
-----------------------------------------------------------------

This looks good to me with Chris' and my comments addressed.

::: toolkit/components/telemetry/docs/environment.rst
@@ +311,5 @@
>  - ``browser.urlbar.suggest.searches``: True if search suggestions are enabled in the urlbar. Defaults to false.
>  
>  - ``browser.urlbar.userMadeSearchSuggestionsChoice``: True if the user has clicked Yes or No in the urlbar's opt-in notification. Defaults to false.
>  
> +- ``browser.zoom.full``: True if zoom is enabled for both text and images, that is if "Zoom Text Only" is not enabled. Defaults to true. Collection of this preference has been enabled in Firefox 50 and will be disabled again in Firefox 53 (Bug 979323).

Make this a link to the bug please.
You can build the documentation with |mach doc|, after building it will tell you where you can find the generated documentation files.
Attachment #8762577 - Flags: review?(gfritzsche) → review+
Comment on attachment 8762577 [details] [diff] [review]
Add "Zoom Text Only" preference to environment telemetry

f?bsmedberg for data collection review.
This should be a quick and easy review.
Attachment #8762577 - Flags: feedback?(benjamin)
Attachment #8762577 - Flags: feedback?(benjamin) → feedback+
Status: NEW → ASSIGNED
The patch contains the changes from the previous changes, but with a fixed order in TelemetryEnvironment.jsm and an added link to this bug in the documentation.
Attachment #8765186 - Flags: review?(gfritzsche)
Attachment #8762577 - Attachment is obsolete: true
Comment on attachment 8765186 [details] [diff] [review]
Add "Zoom Text Only" preference to environment telemetry

Review of attachment 8765186 [details] [diff] [review]:
-----------------------------------------------------------------

:gritzsche's on PTO, so I'll take this review.

LGTM. 

Are you going to file a bug now for its removal in 53? You can probably clone this bug as a good starting point.
Attachment #8765186 - Flags: review?(gfritzsche) → review+
(In reply to Chris H-C :chutten from comment #16)
> Are you going to file a bug now for its removal in 53? You can probably
> clone this bug as a good starting point.

Thanks for the review. I have added Bug 1282881 as requested.
Should I add the `checkin-needed` keyword myself or do we require another `feedback+` from :bsmedberg?
Flags: needinfo?(chutten)
Since all you changed was to alphabetize and augment the documentation, I think you're in the clear :) I've added the checkin-needed on your behalf.
Flags: needinfo?(chutten)
Keywords: checkin-needed
Pushed by cbook@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/3b09a28f58ef
Add "Zoom Text Only" preference to environment telemetry. r=gfritzsche
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/3b09a28f58ef
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
(In reply to Wilhelm Joys Andersen from comment #4)
> My hypothesis is that the best approach for building web content where the
> user can enlarge content is to ignore text only zoom, and focus on building
> great, responsive content. I expect a negligible fraction of zooming users
> to use this particular feature, but have no data to support this claim. (If
> that is true, I think we should kill this feature.)

Note that we also allow users to set a minimum from within Firefox (and I think there might be OS-level font size settings that we respect besides DPI settings, but I could be wrong). It probably doesn't make much sense to kill one of these features but not the other.
According to my analysis[1] of a 1% representative sample of all Firefox users[2], there are at most a very small number of users setting browser.zoom.full to a non-default value.

Specifically, I can find no user in the dataset who has the pref set to a non-default value on any channel. This is evidence in support of the hypothesis that browser.zoom.full is changed by users in a proportion not exceeding one in about a quarter million users (or around 0.0004%)

[1]: https://sql.telemetry.mozilla.org/queries/1362/source
[2]: https://wiki.mozilla.org/Telemetry/LongitudinalExamples
(In reply to Chris H-C :chutten from comment #22)
> According to my analysis[1] of a 1% representative sample of all Firefox
> users[2], there are at most a very small number of users setting
> browser.zoom.full to a non-default value.
> 
> Specifically, I can find no user in the dataset who has the pref set to a
> non-default value on any channel. This is evidence in support of the
> hypothesis that browser.zoom.full is changed by users in a proportion not
> exceeding one in about a quarter million users (or around 0.0004%)
> 
> [1]: https://sql.telemetry.mozilla.org/queries/1362/source
> [2]: https://wiki.mozilla.org/Telemetry/LongitudinalExamples

Note that your data here includes Release (currently v49) builds of Firefox but this probe was landed in v50 so the data related to Release builds here is not useful.
(In reply to Jared Wein [:jaws] (please needinfo? me) from comment #23)
> Note that your data here includes Release (currently v49) builds of Firefox
> but this probe was landed in v50 so the data related to Release builds here
> is not useful.

This was taken into consideration in my analysis in comment 22. It was just easier to write the query to include all channels :)
I should have expected nothing less than an expert analysis. Carry on :)
I've always had an issue with full page zoom.  As I'm sure you are aware, zooming a page using FPZ will make the graphics on many sites blurry on HiDPI devices.  This is due to websites still serving up low resolution graphics.  This was fine back in the CRT days when monitors were a lot smaller and resolutions were less.  Now almost everyone has High DPI monitors.  Running the OS at so called Normal Mode of 96dpi, and subsequently Fx by default, just doesn't cut it anymore as everything is just too small.  I run my OS at 120dpi on a 24 inch 1920x1200 monitor.  I also wasn't happy when you decided to use the OS DPI for both the chrome and content.  So now even things like icons on the chrome are blurry especially non-Fx supplied ones.

While full page zoom retains the layout of a site, the blurriness of graphics is a terrible distraction IMO.  What I do is set Fx back to a default of 96dpi via "layout.css.devPixelsPerPx = 1". and then use Text Zoom to increase the size of text on a page while leaving the graphic elements untouched.  Yes, in some cases this does screw up the page layout but I can usually find a sweet zoom level where the layout is acceptable.

The real solution is for web sites to recognize they are running on a HiDPI device and serve up graphics to match.  This is slowly happening but will take a long time to be common place.  In the meantime Text Zoom is an effective way around the problem.  Using one of the Zoom add-ons that are available lets me fine tune things to get even a better look.

I realize Google Chrome only has full page zoom (I've been told, I don't use it at all) and it seems Fx is trying to go with their standards.  I think this is wrong. I would hate to see Text Zoom be removed from Fx.
You need to log in before you can comment on or make changes to this bug.