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
[edit]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
[edit]- 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
[edit]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
- 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
The header must be adaptable at lower screen resolutions (down to 500px)
Design requirements and guidelines
[edit]Prototype
[edit]https://people.wikimedia.org/~jdrewniak/dip/p4.html#/en/wiki/Moon
Anonymous users
[edit]Note: for the first iteration of the sticky header, the header will only be available for logged-in users
Logged-in users
[edit]Qualitative testing
[edit]User testing
[edit]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
[edit]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
[edit]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
[edit]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.
Results from A/B test for edit button in the sticky header
[edit]To evaluate the impact of introducing an "edit" button within the sticky header, we ran two A/B tests. These two A/B tests were designed to help us learn how the new edit button within the sticky header impacted the likelihood:
- People would publish the edits they started
- The edits people published would get reverted
What follows are the conclusions we're drawing from these A/B tests and details about the Wikipedias that participated in them:
- People were more likely to complete the edits they start using the sticky header
- Of all the edits people initiated throughout both A/B tests, there was a 2.8% and a 6.8% increase in the percent of people who were able to successfully complete at least one edit using the edit button within the sticky header, in AB Test Experiment #1 and #2 respectively. This is in comparison to edits people started using other edit buttons present on the page.
- Edits people initiated and published using the sticky header were less likely to be reverted
- Of all the edits people published throughout both A/B tests, the edits people started using the new edit button within the sticky header were less likely to be reverted than edits started using other edit buttons present on the page.
Note: We are able to confirm that edits published using the sticky header were less likely to be reverted than edits publishing using other edit buttons present on the page. Hovewer, we are unable to confirm and share a specific percentage decrease in revert rates because of a relatively high margin of error. Learn more in the test report.
The first test ran between 6 July and 8 August 2022 on 15 Wikipedias. At these projects, 50% of people included in the A/B test were shown the sticky header without an edit button within it and 50% of people were shown the sticky header with an edit button within it.
The second test ran between 16 August and 1 September 2022 on two Wikipedias: Vietnamese and Indonesian. At these projects, there were three equally-sized test groups:
- A control group that did not see or have access to the new sticky header
- A treatment group that saw the new sticky header without an edit button within it
- A treatment group that saw the sticky header with an edit button within it.
FAQ
[edit]My templates use sticky elements. How do make sure they do not overlap the sticky header?
[edit]Add the .mw-sticky-header-element
class to any elements that you want to stick to the bottom of the sticky header.
How do I add links to the sticky header dropdown menu?
[edit]mw.util.addPortletLink('p-personal-sticky-header', '#', 'test', 'myfeatureid')
mw.util.addCSS('.mw-ui-icon-vector-gadget-myfeatureid:before { background-image: url(/https/www.mediawiki.org/w/resources/lib/ooui/themes/wikimediaui/images/icons/code.svg); }' );
How do I add icons to the sticky header
[edit]We currently do not officially support extending the sticky header in this way.
Why is there no language button in my sticky header
[edit]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?
[edit]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[1] but not old revisions, diffs, history or edit pages[2].
See also
[edit]- Sticky Table Headers gadget on English Wikipedia
- Sticky header user script
- Sticky header user script
- Sticky header user script