Open Bug 1547181 Opened 5 years ago Updated 3 months ago

Implement Page Zoom feature (reflow-style zoom)


(Core :: Layout, enhancement, P3)

66 Branch



Tracking Status
firefox66 --- wontfix
firefox67 --- wontfix
firefox68 --- affected


(Reporter: pbone, Unassigned)


(Blocks 1 open bug)


(Keywords: access, parity-opera, Whiteboard: [fxdroid] [fundamentals_wave2])


(1 file)

A friend of mine suggested I might like this feature. and pointed out that opera supports it: He's right, I do like it and I'd love it if firefox supported it.

I tried it just now in Opera and reflowing text with pinch-to-zoom is quite nice. I tried my own blog and If I added a plugin for inverse-high-contrast like I have in FIrefox it'd be amazing, and more convenient/quicker than Firefox's reader mode.

I've re-opened this bug because the firefox behaviour and Opera behavour are different, and the opera behaviour is better (in my oppinion as a user). I'm expecting people to disagree with me from the perspective as web developers or something about standards or what-not, and that's possibly legitamate, but please do try Opera and see if you like that behaviour better as a user. Ask someone with poor eyesight like a senior citizen what they like.

See Bug 710298 for the original feature that is now broken. The comments on that bug since it was resolved provide other reports of the regression.

Fennec work is essentially complete. Moving this to Core:Layout as that where the fix for GeckoView would lie. Getting the performance of this feature right is critical. The previous implementation we tried was not fast enough on mobile devices.

Component: General → Layout
Product: Firefox for Android → Core
Version: Firefox 66 → 66 Branch

RC week is next week and this bug has no priority and no assignee, so wontfix for 67.

This would require some pretty serious feature work & speccing to figure out how to handle edge cases.

There's a video of the feature here, FWIW:

The page tested on the video (which indeed prevents pinch-zooming in a default-configured Firefox Nightly):

Fennec does have "Settings|Accessibility|Always-Enable-Zoom" which does let you zoom. But the extra bit shown in this Opera video is that on-screen text will rewrap after you've zoomed so that it doesn't run off your screen.

Summary: Reflow on zoom is does not work → Implement "reflow on zoom" feature (like in Opera for Android)

Why is this tagged as a regression? (I don't think we ever supported the magic extra rewrap-the-text-to-fit-your-screen behavior, though it's possible I missed it.)

Type: defect → enhancement
Flags: needinfo?(pbone)
Type: enhancement → defect

We landed some code. It existed in v18 to ~24 disabled by default. After v24 it was nightly only until we removed it in mid 2014. See bug 710298 for initial landing. For removal bug 900564 bug 990821 bug 1201539.

No longer blocks: reflow-zoom
Type: defect → enhancement
Keywords: regression
See Also: → reflow-zoom

Kevin answered for me with more accuracy than I have!

Flags: needinfo?(pbone)

I'd note that this feature addresses similar use cases to those of font inflation -- something that we've implemented and have disabled, and is probably a lot closer to being shippable than reflow-on-zoom is. (You could try it by setting the font.size.inflation.minTwips to something like 300, which would indicate that your minimum readable font size is 15pt. It's an integer preference in twentieths of a point, where points are 72nds of an inch, and we're assuming we know the physical size of your device accurately...)

I spoke with Jamie and Asa about this yesterday and showed how Opera works. They asked me to ping them on the bug.

dbaron: that sounds useful also and I'll give it a go. I use a smiliar setting in Preferences on desktop. It serves a different purpose though. because it can be nice to zoom to a paragraph, let it reflow and then read more easilly.

Flags: needinfo?(jteh)
Flags: needinfo?(asa)

No action from me at this point, though I agree it's important. Copying Eitan, as he may be interested in this.

Flags: needinfo?(jteh)

Here's a short video I made showing how Opera mobile rewraps content on zooming.

Flags: needinfo?(asa)
Priority: -- → P3

Talked with :pbone again today, notes here just for reference:

  • Opera continues to offer reflow-on-pinch zoom
  • Safari, Firefox mobile on Android offer "pinch and pan" zoom

Underlying assumption with the latter is maybe "a user wants to zoom in on one part of the page" vs. the former which maybe indicates "a user wants to zoom in on all page content".

Observations on reader mode:

  • In FF (Android) on tablet, you can "pinch and pan" zoom, and you can also increase/decrease font size from the reader menu.
  • In FF (Android) on tablet, reader-mode content is contained within a column which does not tightly-fit device viewport width (there is whitespace on L/R, which doesn't go away as the user scales font size. We might want to consider decreasing that space as we increase the font size until we're limited by the device viewport boundary. This would prevent the words per line from getting impractically small).
  • in FF (Android) on phone, you cannot "pinch and pan" zoom, but you can increase/decrease font size from the reader menu.
  • In FF (Android) on phone, reader-mode content is tightly bound to the viewport width.

Couldn't you offer an option to force reflow on zoom? those who want it can turn it on, otherwise default is off to achieve the current behavior. Desktop browser reflows on zoom by default so it is a somewhat expected behavior.

Yup, that's what this bug report is about. It hasn't happened yet because it's a non-trivial feature to get right (even if it's off-by-default).

Severity: normal → S3
Duplicate of this bug: 1807123

As Will pointed out in bug 1807123, it looks like Chrome has implemented this feature:

(scroll down to "Customize your Android" section)

Blocks: 1540809

My understanding is that the Android front-end should be able to use BrowingContext.fullZoom to trigger this and it should pretty much just-work...

Not to be a nag but just in case anyone didn't read through the github version of this issue (and also, apologies if this is the wrong bugzilla bug to mention this. There's a few of these and I'm not quite sure which is which) but according to a user on the chromium version of this issue, a lack of page zoom is considered a violation of UAAG 1.0 Checkpoint 4.1?

Whiteboard: [fxdroid] [fundamentals_wave2]

Note: this functionality already exists in iOS, called "Page Zoom", so we should make the Android zoom function work like the one in iOS.

Summary: Implement "reflow on zoom" feature (like in Opera for Android) → Implement Page Zoom feature (reflow-style zoom)
See Also: → 1850808
See Also: → 1850810
You need to log in before you can comment on or make changes to this bug.