Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Editor 2.7: Difference between revisions

From MoodleDocs
(A few minor edits)
Line 10: Line 10:


== Project goals ==
== Project goals ==
The primary purpose is to update the default text editor in Moodle to a new editor.


This will improve accessibility, and usability, while replacing the now unsupported TinyMCE 3.5.8.
The purpose of this document is to plan how to update the default text editor in Moodle.


TinyMCE 3.5.8 will be kept in place for the next few releases, but will likely be disabled by default.
The aim of this change is to improve accessibility and usability, while replacing TinyMCE 3.5.8, which is now unsupported.


Along with the replacement of the Editor, plugins for TinyMCE 3.5.8 that are included as part of the Moodle release will be made compatible with the new Editor.
TinyMCE 3.5.8 will be kept in place for the next few releases, but will be disabled by default.


What other changes can we make to Moodle and the text editors to give a better user experience?
Along with the replacement of the Editor, plugins for TinyMCE 3.5.8, that are included as part of the Moodle release, will need to be made compatible with the new editor.


== Considerations ==
== Considerations ==


* Usability of the editor - is it easy to create content with?
* Usability of the editor - is it easy to create content with?
* Accessibility of the editor - is it at or easy to get it to WCAG AA?
* Accessibility of the editor - is it at or easy to get it to follow the WCAG AA standard?
* Accessibility of the code produced by the editor - is it at or easy to get it to WCAG AA?
* Accessibility of the code produced by the editor - will it produce content that is up to the WCAG AA standard?
* Maintainability of the links between the editor and Moodle - how much work will we need to do every time we upgrade?
* Maintainability of the links between the editor and Moodle - how much work will we need to do every time we upgrade?
* Appearance of the editor - can it be modified to look like the other toolbars currently in Moodle?
* Appearance of the editor - can its interface be modified to look like the other toolbars currently in Moodle?
* Do the dialogues look the same and have the same accessibilty features we expect from moodle dialogues? Do the dialogues scale/reflow on small screens?
* Do the dialogues look the same and have the same accessibility features we expect from Moodle dialogues? Do the dialogues scale/re-flow on small screens?
* Stong feature set - does it support the things our users have come to expect already?
* Strong feature set - does it support the things our users have come to expect already?
* String support - how difficult will it be to allow the strings to change when the Moodle language changes?
* String support - how difficult will it be to allow strings to change when the Moodle language changes?
* Mobile support - how well does it scale on small screens + touchscreens?
* Mobile support - how well does it scale on small screens and touchscreens?
* Plugin support - can our community write plugins easily?
* Plugin support - can our community write plugins easily?
* Browser support - does it support all the browsers Moodle does?
* Browser support - does it support all the browsers Moodle does?
* Loading speed - how quick is it to load the editor ready for use?
* Loading speed - how quick is it to load the editor ready for use?
* Upstream support - is the source willing to support it for the lifetime we want (3 years+?)
* Upstream support - will it be supported for the lifetime we want (3 years+?)
* RTL support - Full RTL support for UI, content and included dialogues.
* RTL support - does it include RTL support for the content, user interface and included dialogues?


== Out there suggestions ==
== Out there suggestions ==
* Add a picture editor to Moodle
* Add a picture editor to Moodle.
* Add a "html_tiny" text format with a super cut down editor that supports it (e.g. - no toolbar at all - but still html with bold, italics, cut/paste etc)
* Add a "html_tiny" text format with a super cut down editor that supports it (e.g. - no toolbar at all - but still html with bold, italics, cut/paste etc)
* [http://wordpress.org/plugins/plugnedit/ Drag and drop handling of media]
* [http://wordpress.org/plugins/plugnedit/ Drag and drop handling of media]
Line 47: Line 46:
* Atto
* Atto
* TinyMCE 4
* TinyMCE 4
* ???
* ??? Are there other alternatives?


{| class="nicetable"
{| class="nicetable"
Line 60: Line 59:
* Still minor room for improvement
* Still minor room for improvement
|  
|  
* Could do with alot of improvement for visual feedback of the state of the text under the cursor/caret
* Could do with a lot of improvement for visual feedback of the state of the text under the cursor/caret
|  
|  
* Still minor room for improvement
* Still minor room for improvement
Line 156: Line 155:


'''Cons:'''
'''Cons:'''
*
* Unfamiliar to Moodle developers


=== Atto ===
=== Atto ===
Line 166: Line 165:


'''Cons:'''
'''Cons:'''
* Maintenance will rely on Moodle developers
* No table/grid support
* No table/grid support
* No Dragmath/ Tex Support
* No Dragmath/ Tex Support
Line 182: Line 182:


'''Cons:'''
'''Cons:'''
* Swapping from WYSIWYG mode to Source mode launches a dialog
* Swapping from WYSIWYG mode to Source mode launches a dialogue


== Sub Tasks ==
== Sub Tasks ==
Line 193: Line 193:
## Getting the new editor to render without altering the existing DOM - prevents changes needed to maintain third party plugins.
## Getting the new editor to render without altering the existing DOM - prevents changes needed to maintain third party plugins.
## Getting AMOS strings working within Editor.
## Getting AMOS strings working within Editor.
## Getting Filepicker working within Editor Dialogs.
## Getting Filepicker working within Editor Dialogues.
## Add file management plugin (Marinas or other)
## Add file management plugin (Marinas or other)
# Disable tinyMCE
# Disable TinyMCE


== Mock-Ups ==
== Mock-Ups ==

Revision as of 07:18, 15 November 2013

Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.

Text Editor Revamp
Project state In Development
Tracker issue
Discussion https://moodle.org/mod/forum/discuss.php?d=243197
Assignee Jason Fowler @ Moodle HQ

Moodle 2.7


Project goals

The purpose of this document is to plan how to update the default text editor in Moodle.

The aim of this change is to improve accessibility and usability, while replacing TinyMCE 3.5.8, which is now unsupported.

TinyMCE 3.5.8 will be kept in place for the next few releases, but will be disabled by default.

Along with the replacement of the Editor, plugins for TinyMCE 3.5.8, that are included as part of the Moodle release, will need to be made compatible with the new editor.

Considerations

  • Usability of the editor - is it easy to create content with?
  • Accessibility of the editor - is it at or easy to get it to follow the WCAG AA standard?
  • Accessibility of the code produced by the editor - will it produce content that is up to the WCAG AA standard?
  • Maintainability of the links between the editor and Moodle - how much work will we need to do every time we upgrade?
  • Appearance of the editor - can its interface be modified to look like the other toolbars currently in Moodle?
  • Do the dialogues look the same and have the same accessibility features we expect from Moodle dialogues? Do the dialogues scale/re-flow on small screens?
  • Strong feature set - does it support the things our users have come to expect already?
  • String support - how difficult will it be to allow strings to change when the Moodle language changes?
  • Mobile support - how well does it scale on small screens and touchscreens?
  • Plugin support - can our community write plugins easily?
  • Browser support - does it support all the browsers Moodle does?
  • Loading speed - how quick is it to load the editor ready for use?
  • Upstream support - will it be supported for the lifetime we want (3 years+?)
  • RTL support - does it include RTL support for the content, user interface and included dialogues?

Out there suggestions

  • Add a picture editor to Moodle.
  • Add a "html_tiny" text format with a super cut down editor that supports it (e.g. - no toolbar at all - but still html with bold, italics, cut/paste etc)
  • Drag and drop handling of media

Candidates

  • CKEditor4
  • Atto
  • TinyMCE 4
  • ??? Are there other alternatives?
.. CKEditor 4 Atto TinyMCE 4
Usable Editor
  • Still minor room for improvement
  • Could do with a lot of improvement for visual feedback of the state of the text under the cursor/caret
  • Still minor room for improvement
Accessible Editor
  • Still minor room for improvement
  • Still minor room for improvement
  • Lots of warnings on the Chrome Accessibility Audit
Accessible Content
  • Unknown
  • Fairly good
  • Fairly good
  • Decorative images need empty alt tag
Maintainable with Moodle
  • Unknown
  • Needs documentation and acceptance tests
  • Unknown
Editor Appearance
  • Can be themed to look like existing toolbars
  • Already looks like existing toolbars
  • Can be themed to look like existing toolbars
  • Menus stand out
  • Can the menu visibility be toggled?
Feature set
  • Almost 100% matching what we have already
  • Still many features left to implement
  • Almost 100% matching what we have already
String Support
  • May need some work to get it working
  • Built with string support in mind
  • Will need some work to get it working
Mobile Support
  • Editor works well, the the dialogues don't
  • Editor works well, as do the dialogues it launches
  • Editor works well, the the dialogues don't
Plugin Support
  • Plugins are easy to write
  • Plenty of 3rd party plugins already out there
  • Plugins support YUI
  • Plugins are easy to write
  • Moodle is the only source of plugins
  • Plugins are easy to write
  • Plenty of 3rd party plugins already out there
Loading Speed
  • Stock editor loads fairly quickly
  • Integrated editor loads fairly quickly
  • Stock editor loads slowly compared to CKEditor
  • Loads much quicker with the menus disabled

CKEditor 4

Pros:

  • Huge community of developers
  • Plenty of plugins
  • Good existing documentation
  • Inline HTML Source editor - no need to open a dialogue to edit the source

Cons:

  • Unfamiliar to Moodle developers

Atto

Pros:

  • Excellent accessibility
  • Excellent integration for Moodle strings
  • Inline HTML Source editor - no need to open a dialogue to edit the source

Cons:

  • Maintenance will rely on Moodle developers
  • No table/grid support
  • No Dragmath/ Tex Support
  • We need to document it ourselves
  • No external community to lean on

TinyMCE 4

Pros:


Cons:

  • Swapping from WYSIWYG mode to Source mode launches a dialogue

Sub Tasks

  1. Assess different editors
  2. Prototype alternatives
  3. Ask some users
  4. Decide on an editor
  5. Implement editor
    1. Getting the new editor to render without altering the existing DOM - prevents changes needed to maintain third party plugins.
    2. Getting AMOS strings working within Editor.
    3. Getting Filepicker working within Editor Dialogues.
    4. Add file management plugin (Marinas or other)
  6. Disable TinyMCE

Mock-Ups

Related Tracker Issues