Wikipedia:Community health initiative on English Wikipedia/Partial blocks

The Wikimedia Foundation's Anti-Harassment Tools team is currently in development of partial blocks. Sitewide blocks are not always the appropriate response to some situations. Smaller, more tactical blocks may defuse situations while retaining constructive contributors. The goal of this project is to give wiki administrators a more robust set of tools to be able to better respond to different user conflict situations.

Please discuss this project at Talk:Community health initiative/Partial blocks!

Types of blocks
No functionality will change for sitewide blocks. All existing blocks will remain in place and the ability to block troublesome users from the entire wiki will remain as-is. In addition to sitewide blocks, we would like to introduce the ability to block a user from:


 * 1) Editing one or more specific page(s)
 * 2) Editing all pages within one or more namespace(s)
 * 3) Emailing other users

Use cases
These types of partial blocks could be useful when:


 * An otherwise productive user has an agenda on a particular topic (e.g. politics, religion, etc.)
 * There is sustained vandalism to one page from an identifiable IP range (e.g. students from one sports team vandalizing pages about a rival team.)
 * Two or more users have been sanctioned with an interaction ban
 * A user abuses the Email User feature but is otherwise productive on-wiki
 * A user makes ill-advised edits to templates

Function
These partial blocks would work similar to sitewide blocks:
 * Can be set by administrators.
 * Can be set for usernames, IP addresses, or IP ranges
 * Will include standard block parameters: reason, expiration, talk and subpage inclusion, and the option to autoblock IPs.
 * Will appear on the block log, Special:BlockList, and everywhere else sitewide blocks appear.
 * When a user has been blocked, they will see a block message displayed that explains what they are prevented from editing in addition to the rest of the block information (i.e. the username of the person who blocked them, when the block expires, the block reason, and how to request an unblock.).

February 13
Namespace blocks are live! 🚀

There are some minor fixes and changes we'll be working on over the next few weeks, but the next major stage for this project is to release to more wikis so we can observe how effective they are at mitigating user misconduct, and to get feedback about any changes we should make. Specifically, we are seeking to understand:


 * 1) What is an appropriate limit of the number of pages a user should be blocked from? In the first version limit is 10, but it can any number.
 * 2) How should partial blocks be logged to allow for accurate and specific logging while keeping the logs easy to read? Currently they are being logged comprehensively in the block log.
 * 3) Should a notice appear when someone edits the user or user talk page of a partially blocked user? Currently, a notice only appears if the user cannot edit that page (e.g. a user is blocked from their own user page)
 * 4) What features are missing that need to be built?

If you would like to have this functionality on English Wikipedia to combat harassment, vandalism, or other forms of user misconduct, please let us know on the talk page.

January 30
As upload blocks will require additional database changes (which requires months of advance notice and planning) we will first complete page and namespace blocks before deciding to pursue upload blocks.

January 16, 2019
Today we reached another significant milestone! Partial Blocks have been enabled on Italian Wikipedia and the local wiki administrators are setting partial blocks to combat vandals! A big congratulation to my team for working through the inner guts of MediaWiki and all its processes to make sure we have a safe and reliable blocking tool. 🎉

If you would like to test the functionality, it will forever be available on http://test.wikipedia.org/wiki/Special:Block (write us if you need admin privileges.) We're already talking to two other languages of Wikipedias about being testers — if your wiki would like to test please write on our talk page!

December 20
As 2018 draws to a close, our team is putting the final touches on Namespace blocks. This functionality should be ready in January on Test Wikipedia and on the non-English Wikipedias that are eager to adopt this new functionality. Our plan for early 2019 is to release to several wikis and make changes based on what problems and opportunities arise. We'll also build the ability to block a user from uploading files, creating new pages, and renaming pages.

Meanwhile, our team's analyst is analyzing data on the effectiveness of blocks. These measurements should help us better understand how many blocks are effective at stopping continued abuse to the wiki or its community members. We expect this data to show us if partial blocks are as effective as sitewide blocks and hope this data can inform the governance policies for when to levy blocks and block lengths.

December 5
Our team is still working on addressing the final defects before we enable Partial Blocks on Italian Wikipedia. We're optimistic that we can hit this milestone next week! In the meantime testing is still available on Test Wikipedia and Test Wikidata for users interested in taking a look at what's ready so far.

We're also confident that we can get Namespace blocks to a near-ready state by the end of December, before we break for the winter holidays. That functionality should be ready on Test Wiki in January.

November 26
We have a handful of bugfixes and feature enhancements to release this week! This list explains everything that's changed. In short, these changes will make Partial Blocks only affect exactly what is listed in the block set by the admin, as we originally intended. All changes will be available on http://test.wikipedia.org by Wednesday of this week.

With this set of changed we feel confident in the stability and functionality of the feature. We are working with Italian Wikipedia to look-over the functionality on Test Wiki before they adopt the feature and integrate it into their user mediation workflows. If any other wikis are excited to use this functionality, please let us know and we'll begin working with you!

Meanwhile, our devs are also working on implementing Namespace blocks. We hope to have them completed in the coming weeks.

November 8
Partial blocks are live on Test Wikipedia and Test Wikidata! If you're an admin here or on another wiki and would like to test the functionality please write a message on our talk page.

This first feature set is limited: admins can block an user or IP from editing up to 10 specified pages. There are some known defects that we're currently working on (for example, if an admin is partially blocked from a page they can't delete any page.) and we'll get back to building namespace and upload blocks in later November.

If you're testing partial blocks we'd love to hear from you! Drop us a note about your experience with the tool. We're looking specifically for feedback about:
 * What is an appropriate limit of the number of pages a user should be blocked from? In the first version limit is 10, but it can any number.
 * Are you satisfied with how partial blocks are logged?
 * Do we need to change anything that has already been built?
 * Is the warning message in the VisualEditor too gentle?

Thank you!

October 19
We're making significant progress on Partial Blocks and are nearly live on production wikis. We hope to have a functional version on test.wikipedia.org and test.wikidata.org in the coming weeks. We're very excited to share it with you!

While the devs put the final touches on the first version, others on our team are currently thinking about how we want to measure the effectiveness of blocks. We're asking ourselves (and anyone who will listen) questions like "Are blocks effective at stopping harm? Do users who are blocked return to make constructive edits? How do we measure this?" — if you are interested in discussing this topic, we have a 7 proposed measurements and commentary on why we selected them at the other project page.

As part of this, we've generated some data on how frequently blocks are set (did you know there are currently 3.4 million active blocks?) and pages are protected (~20,000 pages are currently protected) to better understand the scale of administrative actions.

September 24
We have a fourth round of designs, based on feedback from our second round in June. Here are the two new designs, detailed UI element views can be seen in the gallery below. in

September 21
Our team is nearly ready to release the first feature set of partial blocks — the ability to block a user from ≤10 pages — on the beta environment then test.wikipedia by mid-October. We are talking with some early opt-in wikis to test the functionality, please let us know if your wiki would be interested in utilizing this functionality, which also gives you a great opportunity to dictate the future of this project!

In other news, due to technical complexity, we have decided to de-prioritize multiple blocks (T194697) and remove it from this project. I've moved the documentation here. This small amount of functionality would take a very large amount of time to build and we first want to make sure page, namespace, and upload blocking work as expected and actually produce meaningful impact. We'll have another round of designs soon and we look forward to delivering a great partial blocks feature in the coming months!

September 4
We have our third round of designs almost ready and we want to share them now before we go too far without validating our direction. These designs include functionality to view details about multi-blocks. Because of this change we need to introduce a new piece of information during the blocking process. This led us to the idea of a block modal window, which can theoretically appear on any page — a diff page, recent changes, a profile, etc. This would allow an admin to block a user without having to navigate to another page. Here is how it would work:

''// designs redacted for clarity, moved here. //''

August 22
Based on conversations on the talk page, in person at Wikimania last month, and on the TechComm RFC for this project our team has decided to merge the project of multi-blocks into Partial Blocks. The goal of multi-blocks is to allow admins to set multiple concurrent blocks against an account with independent expiration dates, decreasing the manual workload on administrators. Example use cases for multi-blocks include:


 * User:Apples has been indefinitely blocked from editing . They then receive a 24 hour full-site block. When the full site block expires, they should continue to be blocked from.
 * User:Bananas is indefinitely blocked from editing  and from editing   until 2025. An admin wants to block them from   for one month.
 * After User:Carrots has violated a wiki policy, an admin wants to set both an indefinite block against  and a 24-hour sitewide block at the same time, without having to write a self-reminder to update the block.

This will require changes to Special:Block, Special:Unblock, Special:BlockList, and Special:Contributions. We are working on another round of designs (with minimal changes from the last round) which we will post on this page next week. Work for multi-blocks will be tracked in Phabricator at T194697. Our TechComm RFC can be found at T199917 which includes all our proposed database changes and other technical implementation details.

July 13
This project was slightly delayed due to other interruptive work and unfortunately will not be demonstrable by Wikimania. The entire Anti-Harassment Tools team will be at Wikimania in Cape Town next week, so if you are attending please find us and discuss this project!

We are optimistic to have a functional version of this in early August. We're still planning to build it according to the designs in the June 28 update.

During the last week on July, we will post a banner on Special:Block inviting people to visit this page to learn about our changes. We anticipate a lot of people will join the discussion. Welcome!

We will also be holding a technical RFC in the coming weeks to make sure our architecture decisions are agreeable.

June 28, 2018
This project is currently in development and we hope to have a functional version ready by mid-July to demonstrate how this would work for further feedback. We anticipate a mid-August release to test wikis and will soon be looking for a wiki to try this as a pilot.

We have a new series of designs to share. We believe these should address most feedback we've received over the past month.

Notes about these designs:


 * The first mockup shows the checkboxes for 'upload files' and 'moving pages' as unselected. This is an error we will fix in our next round of designs.
 * The dropdown for Reason will display as wide as it needs to, based on the customized list on every wiki. It will function as it does today.
 * We plan to add in ajax loading for the block history table, which will display under the tool on small monitors or to the right of the tool on wide monitors for LTR wikis.

Previous
Previous updates have been posted on the talk page, but moving forward we will provide updates directly here. Here is a summary of the project to date:


 * We believe it makes the most logical and practical sense to build this functionality on top of Special:Block as opposed to a new tool, as it shares nearly identical mental models, workflows, and user experiences. We understand that most blocks will be sitewide so the default workflows will be optimized to not interrupt current usage. All changes we make will be additive to existing functionality.
 * We have decided to put blocking by categories on hold as it poses some complicated challenges. We will ensure page, namespace, and upload blocking are satisfactory and are achieving the goal of allowing communities to set appropriate sanctions to keep troublesome users productive yet distanced from areas where they cause problems.
 * It has been suggested that we abandon this project altogether. Our team, the Anti-Harassment Tools team, strongly believes this will be a useful tool to address situations and we acknowledge this needs to be released to wikis delicately as it will alter how sanctions are set. We do not believe partial blocks will be appropriate for all situations, in some cases socially enforced sanctions may still be needed.

Proposed implementation

 * On Special:Block, add a radio button to select setting the block as sitewide vs. partial.
 * When a block is saved with the  radio button selected, the block should behave exactly as it does today.
 * If the  radio button is selected, the admin should be able to provide a list of pages and/or namespaces:
 * If an admin specifies page(s) to block:
 * Page blocks can only be set for existing pages, with validation required in the input field.
 * An autosuggest should help the admin find the correct page.
 * Pages can be from any namespace
 * If a page is moved or deleted, the user should still be blocked from editing that page (i.e. block by page ID, not page name)
 * If an admin specifies namespace(s) to block:
 * The input field should only accept valid namespaces, with validation required in the input field.
 * An autosuggest should help the user find the correct namespace.
 * Help tooltips should display for the new fields
 * Block log entries on Special:Contributions, Special:Block, and Special:Log should be indicate if the block is partial:
 * Log for sitewide blocks should not change.
 * Log for page blocks should include
 * Log for namespace blocks should include
 * Log for both page and namespace blocks should include
 * The block should be listed and annotated on Special:BlockList, per the designs
 * When a user attempts to edit an applicable page, they should see a new type of block warning message using a new string key which include information on their block (reason, expiration, etc.)
 * Only one block per user (like it is today) — to update the block, admins will need to modify the block.
 * If a partial block is set, the checkbox for  should be marked as disabled
 * The Block API should be updated to support all partial block functionality
 * Sitewide blocking via API should not change
 * API documentation should be updated
 * If a partial block is set via API, invalid pages and namespaces should be ignored

Category blocks
Previously, this project aimed to build the ability for admins to block a user from editing all pages inside a category. This has been put on hold until we build page, namespace, and upload blocking. Category blocks pose unique challenges that need to be addressed before we proceed with development:


 * How do we handle categories that may be on the Talk Pages of applicable article pages?
 * How many sub-categories deep should the category blocks apply?
 * How to address situations where a user may use a sock to remove a category from a page and therefore change their own block?
 * Will this introduce a speed performance drag on the user experience?

User requests
This functionality was requested in:


 * The 2015 Community Wishlist Survey/Moderation and admin tools#Enhanced per-user / per-article protection / blocking
 * The 2017 Community Wishlist Survey/Anti-harassment/Per-page user blocking
 * Phabricator ticket T2674 since 2005.
 * This was also discussed in our wider Community health initiative on English Wikipedia/Blocking tools and improvements on-wiki consultation in late 2017 to early 2018.

Editing restrictions
In addition to simple per user blocking, the Foundation's Anti-Harassment Tools team would like to support the work done by volunteers who administer editing restrictions on Wikipedia, as well as build systems that assist sanctioned users by preventing them from making further violations so that they will remain constructive contributors.

The Community health initiative/Editing restrictions will be used to collate and share ideas about implementing tools to make this work more accurate and efficient.