[go: nahoru, domu]

Page MenuHomePhabricator

MobileFrontend overlay toolbar can have no top border in Chrome 69 on Android
Open, MediumPublic

Description

Problem

With the latest version of Chrome on Android (69) the Chrome header and Android status bar are white by default. In some cases, e.g. when you are editing an article, there is no distinction between the bottom of the status bar and the top of our website. Previously the status bar was black by default so this wasn't an issue.

image.png (494×1 px, 82 KB)

Revised solution

As @Krinkle pointed out in T204691#5752221 there is a more optimal solution available to us: adding a gray border between the top of the website and the browser header/status bar. This will solve the issue without drawing attention to the header/status bar (as the previous solution does). The border should be 1px solid #eaecf0 and should result in the following:

default - main.jpg (1×750 px, 348 KB)
default - scrolled.jpg (1×750 px, 572 KB)
default - modal.jpg (1×750 px, 361 KB)

Previous solution

We can define a theme color in our site's manifest file so the status bar and Chrome header are no longer white. Our first choice was base90/#f8f9fa, however that color doesn't seem to be registering (our assumption is that it's too light) so we'll be going with our second choice of base80/#eaecf0 instead.

Patches exist:

QA steps

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Okay, some wires got crossed then :). I thought @Nirzar had approved the black color... :) anyway... that black can be changed to anything we want. As long as it's not #fff i believe it solves this issue in best way possible.

The color theme of #eee looks good to me. It seems like the standard practice is to make the status bar a darker version of the color used for the header, would that be possible? As in:

auSbY.png (890×500 px, 62 KB)

Here are how a few other people are handling it (some are doing custom colors, others aren't):

FacebookYelpPinterestTwitterRedditAmazon
Screenshot_20180920-125457.png (2×1 px, 182 KB)
Screenshot_20180920-125417.png (2×1 px, 220 KB)
Screenshot_20180920-125603.png (2×1 px, 206 KB)
Screenshot_20180920-125359.png (2×1 px, 1 MB)
Screenshot_20180920-125436.png (2×1 px, 691 KB)
Screenshot_20180920-125508.png (2×1 px, 1 MB)

Change 461694 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/extensions/MobileFrontend@master] Default theme color is #eee

https://gerrit.wikimedia.org/r/461694

If I understand @alexhollender's last comment correctly, some of the sites (Facebook, Yelp, Pinterest) use not one, but two of their brand colors. #eee is not part of our color palette, I'd consider #eaecf0, see https://design.wikimedia.org/style-guide/visual-style_colors.html#base-colors

Sorry to delay this, I realize we're eager to get a fix out. I'm just going to run some options by Nirzar, which I will also post here, and should have a resolution tomorrow.

It seems like the standard practice is to make the status bar a darker version of the color used for the header, would that be possible? As in:

They're not doing this by choice - that was automatic behaviour prior to Chrome 69 which is why this is a new issue. There is only one colour you can specify, and Chrome generated the darker status bar itself. Since Chrome 69 the address bar and status bar are identical, and the default for the status bar is white, not black.

Chrome < 69Chrome 69
Screenshot_20180920-125417.png (2×1 px, 220 KB)
2018-09-21 14.44.44.png (1×1 px, 159 KB)
Screenshot_20180920-125436.png (2×1 px, 691 KB)
2018-09-21 14.47.44.png (1×1 px, 466 KB)
Esanders renamed this task from MobileFrontend overlay toolbar can have no top border on Android to MobileFrontend overlay toolbar can have no top border in Chrome 69 on Android.Sep 21 2018, 1:52 PM

Here it is with a theme colour of #eaecf0, as suggested by Volker:

2018-09-21 14.54.59.png (1×1 px, 404 KB)
2018-09-21 14.56.31.png (1×1 px, 312 KB)

Thanks for the clarification about what is possible @Esanders. This might seem like overkill but I want to consider all of our options here:

default (if we do nothing)
default - main.jpg (1×750 px, 348 KB)
default - scrolled.jpg (1×750 px, 572 KB)
default - modal.jpg (1×750 px, 361 KB)
accent50
accent50 - main.jpg (1×750 px, 365 KB)
accent50 - scrolled.jpg (1×750 px, 578 KB)
accent50 - modal.jpg (1×750 px, 367 KB)
base90
base90 - main.jpg (1×750 px, 351 KB)
base90 - scrolled.jpg (1×750 px, 573 KB)
base90 - modal.jpg (1×750 px, 362 KB)
base80
base80 - main.jpg (1×750 px, 351 KB)
base80 - scrolled.jpg (1×750 px, 585 KB)
base80 - modal.jpg (1×750 px, 362 KB)
base30
base30 - main.jpg (1×750 px, 352 KB)
base30 - scrolled.jpg (1×750 px, 577 KB)
base30 - modal.jpg (1×750 px, 362 KB)
base20
base20 - main.jpg (1×750 px, 352 KB)
base20 - scrolled.jpg (1×750 px, 578 KB)
base20 - modal.jpg (1×750 px, 363 KB)
base10
base10 - main.jpg (1×750 px, 349 KB)
base10 - scrolled.jpg (1×750 px, 576 KB)
base10 - modal.jpg (1×750 px, 362 KB)
base0
base0 - main.jpg (1×750 px, 349 KB)
base0 - scrolled.jpg (1×750 px, 561 KB)
base0 - modal.jpg (1×750 px, 362 KB)

@Nirzar @Volker_E

base 90 works, doesn't take too much attention and focuses on our content

+1 to Base90
FWIW in the next release of the Wikipedia Android app, we are updating the toolbar to use Base90 everywhere (see T197812):

Explore feed
image.png (640×360 px, 179 KB)
Article view
image.png (640×360 px, 136 KB)

I don't think this example matches what is happening in VE. There is a single pixel border above the toolbar, which isn't present in my screenshots. The original issue was that there was no delineation when there was no border.

default - modal.jpg (1×750 px, 361 KB)

In fact on my local environment, it appears to ignore base90 as being too close to white, and leaves the header bar as white.

+1 to Base90, but also a point against Accent50 is that Android will be removing the blue highlight from the feed soon

There is a single pixel border above the toolbar, which isn't present in my screenshots

Can we add a border?

In fact on my local environment, it appears to ignore base90 as being too close to white, and leaves the header bar as white.

hmm, not really sure what to do about that? Maybe we can try slightly increasing the darkness until we find the threshold?

Can we add a border?

If we add a border, then we don't need to bother with the theme colour. Also on OSes that do have borders you will have a double border (this is the reason I went with an inset shadow in my original patch).

We either need to use something that works with or without a border line draw by the OS (e.g. an inset shadow), or a darker theme colour that provides enough contrast to white i.e. closer to the border line colour.

Jon and I sat down yesterday and tried to figure out if there was a color close to base90 that would register. Turns out you have to get pretty close to base80 in order to get it to take, at which point it kinda just looks weird because it's just a shade lighter than our Wikipedia header. So after all we will move forward with the option @Esanders posted here T204691#4605772.

Change 461694 merged by jenkins-bot:
[mediawiki/extensions/MobileFrontend@master] Lighten default theme color

https://gerrit.wikimedia.org/r/461694

☝️ I moved this task onto the board because it's been worked on by @Jdlrobson and @alexhollender. It looks like it's ready for signing off on too… Have I misunderstood the state of the task?

Two patches remain open. I'm happy to get https://gerrit.wikimedia.org/r/461439 reviewed but will lean on @Esanders and his team to confirm this resolves this bug.

Change 461439 merged by jenkins-bot:
[mediawiki/skins/MinervaNeue@master] Add theme-color meta tag to Minerva

https://gerrit.wikimedia.org/r/461439

Live on reading web staging and the beta cluster. Take your pick!

Change 461116 abandoned by Jdlrobson:
Add inset shadow to overlay header on Android

Reason:
lemme know if this is the wrong action!

https://gerrit.wikimedia.org/r/461116

Looks great. Here are a few screenshots, including the editing view that prompted this task:

beta-2.png (2×1 px, 373 KB)
beta-3.png (2×1 px, 245 KB)
beta-1.png (2×1 px, 140 KB)

@Jdlrobson I'm not sure if this is relevant, however oddly the new status bar & chrome header color are inconsistently present on production:

Screenshot_20181004-194855.png (2×1 px, 446 KB)
Screenshot_20181004-194912.png (2×1 px, 247 KB)
Screenshot_20181004-194958.png (2×1 px, 1 MB)
Screenshot_20181004-194948.png (2×1 px, 591 KB)
Screenshot_20181004-194927.png (2×1 px, 197 KB)

Moving this to QA

@Jdlrobson I'm not sure if this is relevant, however oddly the new status bar & chrome header color are inconsistently present on production:

Expected. HTML caching. It will not happen in about a week's time.

looks good - resolving.

In T204691#4607334, @alexhollender wrote:

Can we add a border?

If we add a border, then we don't need to bother with the theme colour. […]

While it is true that the a border-top for browsers other than Chrome/Android may result in a double border in combination their their native divider, this tends to blend well and appear as one or as slight inset. Nearly invisible to the user. For example:

1px border-topno border
Screenshot 2019-12-18 at 19.56.13.png (500×980 px, 57 KB)
Screenshot 2019-12-18 at 19.56.23.png (500×980 px, 63 KB)

It seems like the standard practice is to make the status bar a darker version of the color […]

They're not doing this by choice - that was automatic behaviour prior to Chrome 69 which is why this is a new issue. […]

Chrome < 69Chrome 69
Screenshot_20180920-125417.png (2×1 px, 220 KB)
2018-09-21 14.44.44.png (1×1 px, 159 KB)
In T204691#4606271, @alexhollender wrote:

[…]

[current]base80accent50
default - scrolled.jpg (1×750 px, 572 KB)
base80 - scrolled.jpg (1×750 px, 585 KB)
accent50 - scrolled.jpg (1×750 px, 578 KB)

[…]

I believe the reason the default may have changed in Chrome is to give a more native feel to the reading experience. In particular, I associate reading on the web with poor UX on websites that have headers and footers that don't scroll out view but permanently block out part of the screen. This gives, I think, a sense of a crammed viewport.

Darkening the header in this way means the top of the screen no longer blends out of mind with the top of the page when reading. Rather it prominently stands out and actively shortens the perceived length and freedom of the viewport.

I am curious whether you share this perception and consider this darkening a compromise or a universal improvement you would have considered even without this task for the reading experience.

If not, then perhaps the border suggestion that was initially used in the mockup is worth considering?

[clipped]
I am curious whether you share this perception and consider this darkening a compromise or a universal improvement you would have considered even without this task for the reading experience.

If not, then perhaps the border suggestion that was initially used in the mockup is worth considering?

@Krinkle Thank you for raising this question. Looking back over the comments I'm not entirely sure why we didn't consider trying to implement the border approach. I agree that the browser header and status bar with a white background and a border below is preferable to what we currently have.

alexhollender_WMF updated the task description. (Show Details)

Re-opening this task based on T204691#5752221. I've added a revised solution in the description.

ovasileva triaged this task as Medium priority.Feb 5 2020, 11:33 AM
ovasileva moved this task from Upcoming to Triaged but Future on the Web-Team-Backlog board.
ovasileva subscribed.