Reading/Web/Desktop Improvements/Features/Sticky Header

As a part of the Desktop Improvements project, we will change the commonly used tools which have previously been available only at the top of the page. The new functionality will allow access to these tools throughout the page via a “sticky” or “fixed” header. Our goal is to make it easier for readers and editors to access these tools. We realize that now, they frequently need to scroll all the way to the top of the page.

Background and Goals
Currently, many functionalities on wiki pages are only available to users at the top of the page, and/or on the left panel of the page. This becomes problematic on longer pages, when scrolling past the first few paragraphs means the user would need to scroll back up to access the tools and other resources again. Our proposed method of addressing this is to make the site header “sticky”. This means it stays fixed to the top of the screen (above the content) as you scroll up or down the page.

In addition, we currently offer very little in-page orientation to our readers and contributors. This makes it difficult to distinguish between one page and another.

Our goal is to:
 * Provide both functionality and context throughout the page.
 * Reduce the time readers and editors spend scrolling up and down the page for navigational purposes.

Use cases

 * As a reader, I want to know what article I’m reading at all times, so that I can easily orient myself within the site.
 * As an editor, I want the ability to access important functionality (e.g. edit, go to the history page or the talk page of the article) from anywhere in the page, so that I do not waste time when scrolling up.
 * As a multilingual reader, I want the ability to switch languages at any point of my reading, so that I can switch directly after I find a confusing word or sentence.

Feature description and requirements
A sticky/fixed header will appear at the top of the page once a user scrolls past the current header on the page.


 * For anonymous users, the header will contain the following:
 * Wiki logo
 * Search
 * Page name
 * Section name


 * For logged-in users, the header will contain the following:
 * Wiki logo
 * User tools menu (see user tools page)
 * Search
 * Page name
 * Section name
 * Link to talk page
 * Link to history page
 * Link to source and/or edit (following the preferences of the wikis itself)
 * Language switching functionality

The scrolling behavior of the header must adapt to the needs of logged-in users The header must be adaptable at lower screen resolutions (down to 500px)
 * Note: we are currently testing a variety of scrolling and triggering behavior including allowing the header to appear upon scrolling up the page and when switching tabs. We will also be exploring displaying the header in a persistent manner

Prototype
https://people.wikimedia.org/~jdrewniak/dip/p4.html#/en/wiki/Moon

Anonymous users
Note: for the first iteration of the sticky header, the header will only be available for logged-in users

User testing
We performed user testing of the sticky header with readers and editors in three locations and languages with the goal of determining which functionality was highest priority in order to include within a sticky header. For the first iteration of the sticky header, we will be removing triggering behavior and making the sticky header persistent as per request of a number of the editors involved in the user testing. We will then evaluate the change once live. We also tested the usability of our current prototype.

The results of the test were used to iterate on the links available within the header as well as the triggering and persistent behavior of the header. See the full results of this test.

Prototype testing
In May 2021, we performed prototype testing with logged-in users across 30 wikis. The test was designed to gather feedback on the usability and functionality of the sticky header and user menu.

Our preliminary results show that an overwhelming majority of test participants reported positive experience with a sticky header. Participants mentioned they enjoyed the ability to access important functionality from any part of the page.

However, a large number of participants (~20%) indicated issues with the appearance of the sticky header itself. The majority of these participants indicated that they wished for the header to appear on the page permanently rather than by a variety of triggers. Some of the participants indicated that while they enjoyed the appearance of the header on trigger, they experienced issues with the header appearing/disappearing too quickly.

As next steps, we will be reviewing the triggers that allow the header to appear and disappear. We are also planning on further experimentation with the sticky header appearing persistently on the page. These changes will be expected to appear within the first iteration of the sticky header deployed to our pilot wikis.

Quantitative testing
We will be monitoring the before and after usage of the links included in the sticky header on our pilot wikis following our initial deployments. We expect to see a small but significant rise in access to some of these links, in particular, to the talk page and history page.

Results from A/B test on pilot wikis
From Jan 5 to Jan 31, 2022, we ran an A/B test to assess the impact of deploying the sticky header. The test ran on 22 of our pilot wikis. Logged-in users who were assigned to the treatment group with the new skin version saw the sticky header while users in the control group saw the old feature.

The primary goal of the AB test was to test the hypothesis that the sticky header decreases the need to stroll to the top of the page. We also studied following two questions:
 * What is the clickthrough rate (per pageview or per session) of each item on the sticky header?
 * What is the ratio of clicks of sticky header items to the corresponding items at the top of the page?

Overall, there was an average 15% decrease in scrolls per session by logged-in users on the 15 pilot wikis in the treatment group (with the new sticky header), compared to the control group (without the sticky header). This indicates that our hypothesis was correct - adding the sticky header to the page reduced the need to scroll to the top of the page significantly.

The full report is available at this link.

My templates use sticky elements. How do I get them to work with the sticky header?
Add the class to any elements that you want to stick to the bottom of the sticky header.

Why is there no language button in my sticky header
Go to preferences, and tick the box "Use a compact language list, with languages relevant to you." to enable languages in the sticky header.

Why is the sticky header not showing on a certain page?
The sticky header is currently only visible to logged in users using modern browsers on allowed actions and allowed namespaces when the user has scrolled down the page. At time of writing it is only enabled on namespaces: Main, Main talk, User, User talk, Wikipedia, Template, Help, Category, Portal, Module and but not old revisions, diffs, history or edit pages.