Paste special

Atto ::: atto_pastespecial
Maintained by Joseph Inhofer
PasteSpecial button for Atto reduces clutter when pasting from non-Atto text editors.
Mike Churchward
Thursday, March 17, 2016, 4:51 AM
General comments

Version reviewed: 2015082600

Atto “Paste Special” plugin was designed to reduce or eliminate the extraneous html markup code generated when content is pasted into the html editor directly from an external source (vs. typed in directly). Recent versions have expanded upon this functionality to allow users to insert tables, to keep original styling elements, and to paste in html code that hasn’t been “cleansed.” While the output produced by this plugin ably addresses the needs of those users who have come to expect these options from a text editor, the plugin’s UI is unintuitive and buggy, making it difficult for the user to consistently achieve the desired results.

The plugin has been maintained well, and the maintainers are responsive. Coming from the UMN, it is highly likely that the plugin will continue to be maintained.


Installation is straightforward so there’s no need to change the configuration defaults.

Layout of dialog box

The layout and labeling of the text fields on the screen (1, 3, 2, 4) is out of sequence and, forcing the user to jump around the screen to find out where to go next. The layout for the “Help” screen takes this problem a step further with the list of options that appear in Step 2 displaced completely by a line of descriptive text (“Follow the itemized steps to paste your text into Atto”)

List of “paste” options  - selection issues

If the user tries to select any option but the default (“Paste from Moodle”) before pasting contents into the “Content to be pasted” text box, the “Paste from Other” option becomes the default and all other selections are locked down.

Suggestions for improving the contents and organization of “paste” options

  • The contents of the current list of "paste options" would make more sense if it were separated into two subcategories: "Paste from" and "Output options."

    • Make "Paste as formatted text" the default option for "Output options."

  • Omit "Paste from" options like LibreWriter that aren’t universally used.

  • Replace options that are too open-ended (Other) with a logical and recognizable equivalent (Web page).

Contextual Help: 
The “help” text is skimpy and potentially confusing. The layout and labeling of the “sample” text fields is rendered even more confusing with the omission of Step 2 containing the itemized list of options.

Installation:  Documentation is needed for some administrative configuration settings. For example, what does “Set as default” and “Paste text straight” mean? There is a short 1 sentence description, but the ramifications of enabling them are unknown.


Clearly, including an option to “Paste text without cleaning HTML” gives the user the ability to circumvent Atto’s expressed goal to deliver rich content that doesn’t compromise “usability and accessibility” guidelines.

More importantly, the plugin itself has accessibility issues. For example, when content is pasted into the “Content to be pasted” box, a user cannot keyboard navigate to the “Select from where the text was formatted” section.


Full code testing results

(Scores out of 2 - 2 = perfect; 1 = some concerns; 0 = problems.)
Tested for PHP 5.6 and 7 on both MySQL and Postgres. No version of technology problems were found. Score - 2.
Installation test (mpci install) - no problems. Score 2.
PHP syntax test (mpci phplint) - no problems. Score 2.
PHP copy/paste detector (mpci phpcpd) - no duplication of code. Score 2.
PHP code complexity (mpci phmd) - Very minor issue caused by API; no penalty. Score - 2.
Moodle code guidelines (mpci codechecker) - Several minor Moodle coding guideline violations (2 files with spacing issues). Score - 1.
CSS syntax test (mpci csslint) -no files. Score 2.
JS syntax test (mpci jshint) - 1 error identified. Score - 0.
Moodle plugin structure test - Passed. Score - 2.
PHPUnit tests - No tests provided. Score - 0.
Behat tests - Tests provided; some not able to run. Score - 1.
Total score 16 / 22 - 73%.  

(Scores out of 2 - 2 = confident; 1 = nervous; 0 = concerned.)
Lifetime: Plugin has existed since September 2015 on 2.7. Score - 1
Releases: Frequent releases to Moodle plugins DB, with the latest in March 2016. Score - 2
Maintainers: Joseph Inhofer of UMN. Members of MUA and POET. Score - 2
Support Response: Uses Github tracker. Responds in plugins DB. Score - 2
Release timing: How quickly is a release made available to a major Moodle release? 3.0, 2.9, 2.8, 2.7 met criteria. Score - 2

 Total score 9 / 10 - 90%.