In the Why don't D.O. and G.D.O. use a wysiwyg editor? thread, I suggested it might be good to start a discussion on specifications for a coherant and integrated WYSIWYG user experience in Drupal. This naturally starts at a distance from the priorities of developers, but it's my hope that it's still useful for discuss the issue from the perspective of end-users and site-builders.
Here is a a mock-up image which points to some of the things I believe an integrated WYSIWYG in Drupal must do well. There is a quick run down of the principles highlighted by this mock-up underneath.
Principles:
- Embedded, inline images are a vital part of a WYSIWYG editor.
- Formatting the image (setting it's size and layout) makes the most sense to the user if it is done in the same place as the uploading.
- The image layout options provided by the major WYSIWYG editors are deprecated and grossly over-complex. Site designers decide how much padding should appear around images, end-users simply need to be able to apply classes to achieve common layouts.
- Drupal handles line-breaks without extra mark-up, therefore a WYSIWYG editor for Drupal shouldn't add P and BR elements.
- End users with little HTML experience do sometimes have to edit the HTML code directly (when pasting social media embed code, for example). Therefore a WYSIWYG editor for Drupal shouldn't reformat white-space in the textarea.
- Pasting formatted content from other sources should only paste structural HTML elements that the editor is capable of handling, and no style or class attributes. Currently, WYSIWYG editors paste so many style attributes (even when "cleaning up" word processor content) that the HTML becomes unusable - even for those experienced with HTML.
- Names for block-level elements should make sense to ordinary people. If we decide to make H2 and H3 block elements available, we should be able to present these as "heading" and "sub-heading".
How far to people agree with this? What other needs and requirements are there? Is there anything from here that could be acted upon, and what would that take?