Personal image filter



Note: ''This document is a submission to the Wikimedia Foundation Board of Trustees regarding the management of controversial content. It does not describe any project currently under development by the Foundation. It has been created by the request of the Board to help better frame understanding of the technologies required.''

This document describes a proposed system for management of controversial content. This document is a proposal. It does not describe an ideal system; rather, it describes a system that could be developed with minimal effort.

This document and the technology described applies only to multimedia content (images, video, and audio). Text documents and pages are not included or considered.

Flagging Mechanism
Flagging content as being controversial is handled by placing the content within one or more sub-categories of a global "Controversial Content" category. These sub-categories are will be automatically recognized by the system as being content that can be potentially hidden.

For example, a wiki's "Controversial Content" category could contain the following sub-categories: "Sexually Explicit", "Graphic Violence", "Medical", and "Other Controversial Content".

Images illustrative of sexual techniques would obviously be placed in the "Sexually Explicit" sub-category while images of Mohammed could be placed in "Other Controversial Content" (or even "Images of Mohammed").

Content can be placed within multiple categories. For example, a graphical depiction of an aborted fetus could be placed in both "Medical" and "Other Controversial Content" (or any number of additional categories).

Per-Wiki Default Content Hiding
It may be desirable for individual wikis to draw consensus to auto-hide certain types of content by default for all users.

Ideally, an administrative interface could be developed to allow wikis to easily define a set of auto-hidden categories. However, in a minimal sense, these categories can be defined in the wiki's LocalSettings.php file as an array ($wgAutoHiddenContentCategories).

Show/Hide Decision Tree
If a piece of content is within any category that is marked as "hide" by the user (either through preferences or by default flagging), the content will be hidden. Only one of the content flags need be set to "hide" for this to happen.

Display Preferences
Logged in users (non-anonymous) will be able to set their show/hide preferences on individual content categories. They will not be able to set permanent preferences on individual content items.

Access to this preference set should be available through both the user's preferences system (as a tab) and as a javascript dialog (accessed through the image itself).

Additionally, a link can be placed in the Toolbox to access the content settings.

Display Duration
For single items, the duration of any show/hide event shall be the length of their session. A short-term cookie will be placed for each image indicating its show/hide status. The cookie will expire upon session expiry. This is the same for both logged in and anonymous users.

For logged in users, if a content item is not set to be hidden, then it will always show. Likewise, if it is set to be hidden, it will always be hidden. Choosing to temporarily show the item will persist only for the duration of the session.

Interface Behavior
This section concerns itself only with content that is placed within controversial content categories. These controls and behaviors will not exist for content that does not fit that criteria (e.g., the bulk of all content).

"Shown" Content Behavior
For content that is shown by default (either through a user's filter settings or by wiki-wide preferences), the content is displayed with a small control beneath it to allow the user to hide the content temporarily.

The control is greyed out until it is hovered over. When hovered over, the control gains color and a tooltip appears that displays the categories that this image is included in.

If clicked, the image is shrouded, the "hide" control is removed, and a notice that the content has been temporarily hidden is diaplayed.

Hovering over the words "filter settings" will display the categories that the image falls into that are possibly hidable.

Note that for anonymous users, if the content is displayed, no categories are going to be marked as "hidden". Ergo, the default status of "shown" or "hidden" will not appear. For logged in users, the status of each category matched will be displayed next to the category. Example images are for anonymous users.

The following controls are included in the content shroud:


 * Show Image - this redisplays the image and the hide control.
 * Filter Settings - this activates the filter settings dialog tree (see below)

"Hidden" Content Behavior
For content that is hidden on load (either by user settings or by wiki-wide preference), the image shroud will already be in place. This shroud is nearly identical to the "Temporary" shroud with the following exceptions:


 * The message does not indicate that the content is temporarily hidden.
 * The filter hovers display the show/hide state of individual categories.

The reason that the filter state is displayed here is because at least one of the filters is being matched - even for anonymous users.

The behavior is otherwise unchanged.

Filter Settings Dialog
This dialog behaves different for anonymous users and for logged in users.

Anonymous Users
Since content settings cannot be saved for anonymous users, the filter settings dialog will open as a "login" prompt. The user will then be asked to log in to the system (or to create an account).

Maximally, the logging in through this dialog will automatically set session cookies for the user via AJAX calls. The dialog will then be replaced with the normal filter settings dialog as well as a success message.

Minimally, the page will reload with the user logged in. The user will have to repeat clicking on the filter settings dialog.

Clicking the "Create Account" button will take the user to the account creation system.

Logged-in Users
Logged in users will be given the filter settings dialog The filter settings dialog will be defaulted to show the filters applicable to the specific content item, though a tab exists to edit all content filters.

For each category of content, a "Show/Hide" control is displayed. Since checkboxes could be easily misunderstood (does checking it mean that it is hidden or shown?), a toggle control is used that explicitly states what the behavior will be regarding the individual categories.

The user may choose to edit the categories for the specific image or click a tab that will display for all content filters. The "all content" settings screen is the same as the user would see if they went to the preferences tab regarding content filters.