Problem
Special:SetAliases, Special:NewItem and Special:NewProperty pages do not allow the user to enter an alias that contains a | character in it's text. This is because those pages provide one field to enter aliases that instructs the user to enter all of them, separated with a | character.
Since a | character might have legitimate use-cases, being part of the alias text, such as in the following:
- https://www.wikidata.org/wiki/Q1161179 "Mac|Life"
- https://www.wikidata.org/wiki/Q1753348 "M|A|R|R|S"
we have to find a way to allow the user to use |s in aliases when they edit them through Special:SetAliases, Special:NewItem and Special:NewProperty pages.
Solution
Iteration 1 Acceptance Criteria
- When Special:SetAliases or Special:SetLabelDescriptionAliases is given an item or a property that already has an alias containing | save action should fail with the error message TODO.
- such case should be tracked (i.e. counted). data should be split by the special page used
pages fail and inform the user that there's already one or more alias on the item that contain a |, and that they will have to edit the item/property on their page (after creating them if they do not exist yet) in order to be able to set aliases with |s in them. - a data point is collected on how many times this failure happens (only count per week/monght is enough) to understand the size of the issue and impact of the solution
- such case should be tracked (i.e. counted). data should be split by the special page used
This iteration is taken as a first step to eliminate the unintended wrong aliases being set on items/properties, and to collect enough data to know how big the problem is. Given that T118065 was created in 2015 and never been addressed, it could be that there's still no enough usage of those pages in combination with this case to justify costs of later iterations yet.
the next iteration can be either done as an A/B test or one alternative is selected to be implemented, that's decided depending on learnings from prev. iteration
Iteration 2.A Acceptance Criteria
- on Special:SetAliases, Special:NewItem and Special:NewProperty pages, in alaises field, the user can continue to split aliases using |s, and can also escape those that must be part of the alias text by prefixing them with another pipe ||.
Iteration 2.B Acceptance Criteria
- without javascript provide the user a way to reload the page with as many aliases fields to fill in one-by-one as they need
- with javascript use the TagMultiselectWidget from OOUI