(Very provisionally filing this for the BetaFeatures extension, but it's also possible that core or a new extension is the right way to do this.)
Some of the things learned from un-beta-fying MediaViewer:
- It is important to test widely with anonymous editors, they will have different issues (especially so if the interface is different for logged-in users).
- If a feature which is not limited to logged-in users has an optout, the optout should work for anonymous users.
- Opt-out statistics would be a very valuable source of feedback, but the current representation (where a missing user_properties row can either mean that the user never touched the setting or that they set to the same value which happened to be the default) makes it close to worthless.
- Our current preference page is hard to use, and not a good place for an opt-out switch (or at least not good as the primary location). There should be a way for one-click optout from inside the application.
- Designing a good opt-out workflow is hard, especially when the new functionality replaces something else. The user should be able to experiment with the old and new interface, seamlessly switching between opted-in and opted-out state, in the same interaction flow, before making up their mind. This should be supported by standardized UI elements (dialogs, config/optout icons etc).
To support all this, BetaFeatures (or something else) should provide a toolkit for new products to easily build a good optout workflow, including:
- a way for anonymous users to opt in to beta features;
- an easy programmatic way to set enabled/disabled state, so that it works both for logged-in users (stored in user preferences) and anons (stored in localSettings, maybie cookies);
- tri-state settings (default/enabled/disabled) instead of the current bi-state settings (default/enabled for beta features, default/disabled for graduated features)
- standard widgets to provide a uniform optout interface across features (e.g. a stadard button icon, guiders/dialogs)
It would also good to have support/guidance for how to measure optouts, especially for anonymous users.
Version: 1.24rc
Severity: enhancement
See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=67846