Page MenuHomePhabricator

Address Voice and Tone issues in VisualEditor
Open, Needs TriagePublic

Description

Targets
    Occurrences of '(white|black)[ \-]?list' in Directory /Users/reedy/PhpstormProjects/mediawiki/extensions/VisualEditor
Found Occurrences  (50 usages found)
    extensions  (50 usages found)
        VisualEditor  (50 usages found)
            lib  (35 usages found)
                ve  (35 usages found)
                    lib  (8 usages found)
                        dompurify  (1 usage found)
                            purify.js  (1 usage found)
                                674 /* Keep content except for black-listed elements */
                        oojs-ui  (6 usages found)
                            History.md  (1 usage found)
                                1947 * testsuitegenerator: Blacklist deprecated `multiline` config option (Bartosz Dziewoński)
                            oojs-ui-core.js  (4 usages found)
                                449 var i, protocolWhitelist;
                                455 protocolWhitelist = [
                                465 for ( i = 0; i < protocolWhitelist.length; i++ ) {
                                466 if ( stringStartsWith( url, protocolWhitelist[ i ] + ':' ) ) {
                            oojs-ui-core.js.map.json  (1 usage found)
                                1 sync with php/Tag.php\n\tvar i, protocolWhitelist;\n\n\tfunction stringStartsWith( haystack, needle ) {\n\t\treturn haystack.substr( 0, needle.length
                        unicodejs  (1 usage found)
                            History.md  (1 usage found)
                                13 * build: Add 'files' publishing whitelist to package.json (Timo Tijhof)
                    src  (22 usages found)
                        ce  (11 usages found)
                            ve.ce.Surface.js  (9 usages found)
                                2511 var data, $body, $images, i, htmlDoc, htmlBlacklist, pastedDocumentModel, tableAction, contextRange, pastedNodes,
                                2608 htmlBlacklist = ve.getProp( this.afterPasteImportRules( isMultiline ), 'external', 'htmlBlacklist' );
                                2609 if ( htmlBlacklist && !clipboardKey ) {
                                2610 if ( htmlBlacklist.remove ) {
                                2611 Object.keys( htmlBlacklist.remove ).forEach( function ( selector ) {
                                2612 if ( htmlBlacklist.remove[ selector ] ) {
                                2617 if ( htmlBlacklist.unwrap ) {
                                2618 Object.keys( htmlBlacklist.unwrap ).forEach( function ( selector ) {
                                2619 if ( htmlBlacklist.unwrap[ selector ] ) {
                            ve.ce.TextState.js  (2 usages found)
                                377 // (if whitelisted) newly-created annotation.
                                409 // New and un-whitelisted: drop the annotation
                        dm  (6 usages found)
                            lineardata  (6 usages found)
                                ve.dm.ElementLinearData.js  (6 usages found)
                                    1224 * @param {string[]} [rules.blacklist] Blacklist of model types which aren't allowed
                                    1271 // Create annotation set to remove from blacklist
                                    1274 rules.blacklist && rules.blacklist[ annotation.name ]
                                    1310 // Remove blacklisted nodes, and metadata if disallowed
                                    1312 ( rules.blacklist && rules.blacklist[ type ] ) ||
                                    1431 // Remove blacklisted annotations
                        init  (4 usages found)
                            ve.init.Target.js  (4 usages found)
                                205 * Most rules are handled in ve.dm.ElementLinearData#sanitize, but htmlBlacklist
                                212 blacklist: {
                                223 // Selectors to filter. Runs before model type blacklist above.
                                224 htmlBlacklist: {
                        ui  (1 usage found)
                            ve.ui.Trigger.js  (1 usage found)
                                420 // Check that there were modifiers and the primary key is whitelisted
                    tests  (5 usages found)
                        dm  (5 usages found)
                            lineardata  (5 usages found)
                                ve.dm.ElementLinearData.test.js  (5 usages found)
                                    1593 blacklist: {
                                    1598 msg: 'Blacklisted nodes removed'
                                    1629 blacklist: {}
                                    1768 rules: { blacklist: { div: true } },
                                    1769 msg: 'Wrapper paragraph becomes real paragraph when unwrapped due to blacklist'
            modules  (13 usages found)
                ve-mw  (12 usages found)
                    init  (8 usages found)
                        targets  (6 usages found)
                            ve.init.mw.DesktopArticleTarget.js  (1 usage found)
                                131 * receive a compatibility warning. Blacklisting is handled in DesktopArticleTarget.init.
                            ve.init.mw.Target.js  (5 usages found)
                                107 ve.init.mw.Target.static.importRules.external.blacklist = ve.extendObject( {
                                116 }, ve.init.mw.Target.static.importRules.external.blacklist );
                                118 ve.init.mw.Target.static.importRules.external.htmlBlacklist.remove = ve.extendObject( {
                                119 // TODO: Create a plugin system for extending the blacklist, so this code
                                128 }, ve.init.mw.Target.static.importRules.external.htmlBlacklist.remove );
                        ve.init.mw.ArticleTargetEvents.js  (2 usages found)
                            138 spamblacklist: 'extensionSpamBlacklist',
                            139 'titleblacklist-forbidden': 'extensionTitleBlacklist',
                    ui  (4 usages found)
                        dialogs  (4 usages found)
                            ve.ui.MWGalleryDialog.js  (2 usages found)
                                83 blacklist: ve.extendObject(
                                101 ve.getProp( rules, 'all', 'blacklist' )
                            ve.ui.MWMediaDialog.js  (2 usages found)
                                144 blacklist: ve.extendObject(
                                160 ve.getProp( rules, 'all', 'blacklist' )
                ve-mw-collab  (1 usage found)
                    ve.init.mw.CollabTarget.js  (1 usage found)
                        71 ve.init.mw.CollabTarget.static.importRules.external.blacklist[ 'link/mwExternal' ] = false;
            .rubocop_todo.yml  (2 usages found)
                32 # Configuration parameters: Blacklist.
                33 # Blacklist: END, (?-mix:EO[A-Z]{1})

Event Timeline

ppelberg added subscribers: matmarex, ppelberg.

Notes from @matmarex:

  1. Some of the blacklist / whitelist incidences within VE's codebase that are inherited from other extensions.
  2. Other extensions, like ContentTranslation, depend on some of the blacklist / whitelist incidences within VE. As such, when we change these terms within VE's codebase, corresponding changes would need to be made in the codebases that depend on this aspect of VE.
  3. Some of the blacklist / whitelist incidences within VE's codebase are local variables are straightforward to change.

Hello @ppelberg ! I am a Project Manager working on the OKR "removing the non-inclusive language". https://www.mediawiki.org/wiki/Inclusive_language
we have taken parent task T254646 as a guide of what should be changed. I'm trying to use T-shirt sizes to measure the effort required for each task to invite folks at the WMF to join and send proposals of which ones they'd like to change. The purpose of this estimation is to help folks decide which ones they'd like to tackle by giving them information about the effort.

SizeTimeScore
XSAt Most 1 Hour0
SAt Most 1 Day1
MAt Most 3 Days3
LAt Most 5 Days5
XLNeeds Re-Eval9
?Unknown

For this specific task, T277970, What would you say is the size? Also, per your previous comment, I assume this task depends on other bigger changes? I am not an engineer, so I appreciate your patience and help in my quest to get more information : )