SlideShare a Scribd company logo
Editable Documents on the Web

T-111.5502 Seminar on Media Technology B P (4-8 cr)
Presentation

Markku Laine, M.Sc. (Tech.)
markku.laine@aalto.fi

                                November 8, 2011
Presentation Outline

•    Evolution
•    Revolution(?): The HTML5 Approach
•    Research topics
•    Conclusion




                                 2
Evolution




       3
1990: The WorldWideWeb (Nexus)
Browser
•  The first Web browser
•  Direct manipulation of text on
   screen (WYSIWYG)
•  The user reading a Web page
   can edit and save that page
•  A true collaboration platform!




                                        Source: The World Wide Web Consortium (W3C)


                                    4
1993: The Mosaic Browser

•  The browser that popularized
   the Web
•  Regression: the user reading a
   Web page cannot anymore edit
   that page
•  The collaborative nature was
   lost!
   –  Included support for
      annotations, though




                                        Source: Wikipedia


                                    5
2000: The Internet Explorer 5.5 Browser

•  The mainstream Web browser
•  The user reading a Web page
   can edit the entire page
   –  document.designMode
   –  element.contentEditable




                                     Source: Wikipedia


                                 6
????: JavaScript-Based WYSIWYG
Editors
•  Can be embedded into any
   Web page
•  http://testbed.tml.hut.fi/tutorial/
   htmleditors.xformsdb




                                             Source: XFormsDB


                                         7
Revolution(?):
The HTML5 Approach




           8
Google's "Hype Cycle" for HTML5




      1st WHATWG draft   1st W3C draft




                                         Source: Google Insights for Search


                               9
Features Related to Editing Documents

•  The contentEditable attribute
•  The designMode property
•  Editing APIs

•   WYSIWYG editing for Web pages
   –  Certain elements can be restricted from being edited
•   Implemented in all major browsers




                                       10
Demo




       11
<div contenteditable="true">




                12
HTML Element's contenteditable
Attribute
•  Governs just the element on which it appears, and that
   element's children
   –  That is, makes those elements editable
•  Enables Web developers to build element-level rich text
   editors
•  W3C Working Draft
   –  http://www.w3.org/TR/html5/editing.html#contenteditable




                                       13
The API calls

•  element.contentEditable [= value]
•  element.isContentEditable




                                 14
Actions within Editing Hosts

•  Move the caret
•  Change the selection
•  Insert text
•  Break block
•  Insert a line separator
•  Delete
•  Insert, and wrap text in, semantic elements
•  Select and move non-editable elements nested inside
   editing hosts
•  Edit form controls nested inside editing hosts

                                15
document.designMode="on"




              16
Document Object's designMode Property

•  Governs the entire document
   –  That is, makes the entire document editable
•  Enables Web developers to build document-level rich
   text editors
•  W3C Working Draft
   –  http://www.w3.org/TR/html5/editing.html#designMode




                                       17
The API calls

•  document.designMode [= value]




                               18
Editing APIs




        19
Document Object's Editing APIs

•  A set of API calls to issue commands (e.g., bold and
   italic) on the editable region−that is, a document or an
   element), and to query the current state of the region
•  W3C Working Draft
   –  http://www.w3.org/TR/html5/dnd.html#editing-apis




                                      20
The API calls

•    document.execCommand( commandId [,... [,...]] )
•    document.queryCommandEnabled( commandId )
•    document.queryCommandIndeterm( commandId )
•    document.queryCommandState( commandId )
•    document.queryCommandSupported( commandId )
•    document.queryCommandValue( commandId )




                                 21
Possible values for commandId
(specified by W3C)
•  bold, italic, subscript, superscript
•  createLink, unlink, formatBlock
•  delete, forwardDelete
•  insertImage, insertHTML, insertLineBreak,
   insertOrderedList, insertUnorderedList, insertParagraph,
   insertText
•  redo, undo, selectAll, unselect
•  vendorID-customCommandID
•  Anything else  do nothing


                                  22
ExecCommand Demo




  http://www.quirksmode.org/dom/execCommand/




                          23
Implementation Status




                             Source: http://caniuse.com/


                        24
Research Topics




          25
Research Topics

•  Code debugging game called Gidget (Lee and Ko, 2011)
•  Collaborative, lightweight in-line editing (Rees, 2000)
•  Web as an application platform (Taivalsaari and
   Mikkonen, 2011 & Anttonen et al., 2011)
•  Collaborative and interactive document editing (Fujimoto
   and Matsuo, 2006)




                                 26
Conclusion




       27
Conclusion

•  Support for in browser rich text editing has come and
   gone during the history of the Web
•  HTML5 provides improvements related to editing
   documents in browsers
   –  Some compatibility problems between different browsers
•  Typically used together with other HTML5 features, such
   as client-side databases as well as drag-and-drop
•  "This document cannot be edited"  Will this change
   the way we interact with documents permanently?



                                      28
References

•  Rees, M.J. "User Interfaces for Lightweight In-Line
   Editing of Web Pages". In AUIC, 2000.
•  Taivalsaari, A. and Mikkonen, T. "The Web as an
   Application Platform: The Saga Continues". In SEAA,
   2011.
•  Lee, M.J. and Ko, A.J. "Personifying Programming Tool
   Feedback Improves Novice Programmers' Learning". In
   ICER, 2011.
•  Anttonen, M. et al. "Transforming the Web into a Real
   Application Platform: New Technologies, Emerging
   Trends and Missing Pieces". In SAC'11, 2011.

                                29
Thank You!




             Questions? Comments?
              markku.laine@aalto.fi




                           30

More Related Content

PPTX
Html5 histroy api
PDF
gwt-pushstate
PPTX
Share point saturday presentation 9 29-2012-2
PPTX
Building SharePoint Single Page Applications Using AngularJS
PDF
Going mobile with RichFaces
PDF
Drupal 8 deeper dive
PPTX
SharePoint Development in Government Environments
PPTX
SharePoint 2013 Client Side Rendering
Html5 histroy api
gwt-pushstate
Share point saturday presentation 9 29-2012-2
Building SharePoint Single Page Applications Using AngularJS
Going mobile with RichFaces
Drupal 8 deeper dive
SharePoint Development in Government Environments
SharePoint 2013 Client Side Rendering

What's hot (20)

PPTX
Web Forms, or How I Learned to Stop Worrying and Love Web Services
PPTX
SharePoint Development in Government Environments
PPTX
Large Scale Drupal - Behind the Scenes
PPT
Introduction to Google APIs
PDF
Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)
PDF
Creating Content Together - Plone Integration with SMASHDOCs
PPTX
Product Camp Silicon Valley 2018 - PM Technical Skills
ODP
iPhone Web Development and Ruby On Rails
PDF
How To Write Dynamic Migrations - Mohit Aghera
PDF
Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...
PDF
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
PDF
Semantic editor
PDF
«The Grail: React based Isomorph apps framework»​
PDF
«I knew there had to be a better way to build mobile app»​
PPT
Drupal8 Introduction
PDF
What's new in Silverstripe 4? (StripeCon APAC 2016)
PPTX
Using JavaScript Libraries like D3.js with WordPress
PPTX
Angular patterns
PPTX
Single page application
PDF
Blazor certification training - Dot Net Tricks
Web Forms, or How I Learned to Stop Worrying and Love Web Services
SharePoint Development in Government Environments
Large Scale Drupal - Behind the Scenes
Introduction to Google APIs
Implementing Accessibility for the Web Platform (Web Engines Hackfest 2019)
Creating Content Together - Plone Integration with SMASHDOCs
Product Camp Silicon Valley 2018 - PM Technical Skills
iPhone Web Development and Ruby On Rails
How To Write Dynamic Migrations - Mohit Aghera
Alfresco Day Vienna 2015 - Technical Track - Extending Share: Real world exam...
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
Semantic editor
«The Grail: React based Isomorph apps framework»​
«I knew there had to be a better way to build mobile app»​
Drupal8 Introduction
What's new in Silverstripe 4? (StripeCon APAC 2016)
Using JavaScript Libraries like D3.js with WordPress
Angular patterns
Single page application
Blazor certification training - Dot Net Tricks
Ad

Viewers also liked (7)

PDF
XIDE: Expanding End-User Web Development
PDF
Monitoring the Spreading of Infectious Diseases in Finland
PDF
Connecting XForms to Databases: An Extension to the XForms Markup Language
PDF
Wttc2013 econ impact svg
PPTX
Presentation [superscript] sup
PDF
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
PDF
Local Storage for Web Applications
XIDE: Expanding End-User Web Development
Monitoring the Spreading of Infectious Diseases in Finland
Connecting XForms to Databases: An Extension to the XForms Markup Language
Wttc2013 econ impact svg
Presentation [superscript] sup
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
Local Storage for Web Applications
Ad

Similar to Editable Documents on the Web (20)

PPTX
HTML5 introduction for beginners
PPT
Top 10 HTML5 Features for Oracle Cloud Developers
ODP
Html5
PDF
HTML5 and friends
PDF
Html5 Seminario Tid
KEY
Everything you need to know about HTML5 in 15 min
PDF
Building a Better Web with HTML5 and CSS3
PPT
PPT
HTML5 Presentation
PDF
Jsf2 html5-jazoon
PPT
HTML5 Webinar - Mind Storm Software
PDF
HTML5のご紹介
PDF
#1 - HTML5 Overview
PPTX
9 10 july2020
PPTX
Basics of the Web Platform
PDF
Front end for back end developers
PDF
HTML5 and the Open Web Platform - Lecture 03 - Web Information Systems (WE-DI...
KEY
Html5 Primer
PPTX
HTML5: An Overview
HTML5 introduction for beginners
Top 10 HTML5 Features for Oracle Cloud Developers
Html5
HTML5 and friends
Html5 Seminario Tid
Everything you need to know about HTML5 in 15 min
Building a Better Web with HTML5 and CSS3
HTML5 Presentation
Jsf2 html5-jazoon
HTML5 Webinar - Mind Storm Software
HTML5のご紹介
#1 - HTML5 Overview
9 10 july2020
Basics of the Web Platform
Front end for back end developers
HTML5 and the Open Web Platform - Lecture 03 - Web Information Systems (WE-DI...
Html5 Primer
HTML5: An Overview

Recently uploaded (20)

PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Zenith AI: Advanced Artificial Intelligence
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
August Patch Tuesday
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Getting Started with Data Integration: FME Form 101
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
Module 1.ppt Iot fundamentals and Architecture
Zenith AI: Advanced Artificial Intelligence
observCloud-Native Containerability and monitoring.pptx
August Patch Tuesday
Group 1 Presentation -Planning and Decision Making .pptx
A novel scalable deep ensemble learning framework for big data classification...
NewMind AI Weekly Chronicles - August'25-Week II
cloud_computing_Infrastucture_as_cloud_p
Getting Started with Data Integration: FME Form 101
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Chapter 5: Probability Theory and Statistics
Programs and apps: productivity, graphics, security and other tools
Web App vs Mobile App What Should You Build First.pdf
Enhancing emotion recognition model for a student engagement use case through...
Getting started with AI Agents and Multi-Agent Systems
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
Developing a website for English-speaking practice to English as a foreign la...
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
OMC Textile Division Presentation 2021.pptx

Editable Documents on the Web

  • 1. Editable Documents on the Web T-111.5502 Seminar on Media Technology B P (4-8 cr) Presentation Markku Laine, M.Sc. (Tech.) markku.laine@aalto.fi November 8, 2011
  • 2. Presentation Outline •  Evolution •  Revolution(?): The HTML5 Approach •  Research topics •  Conclusion 2
  • 4. 1990: The WorldWideWeb (Nexus) Browser •  The first Web browser •  Direct manipulation of text on screen (WYSIWYG) •  The user reading a Web page can edit and save that page •  A true collaboration platform! Source: The World Wide Web Consortium (W3C) 4
  • 5. 1993: The Mosaic Browser •  The browser that popularized the Web •  Regression: the user reading a Web page cannot anymore edit that page •  The collaborative nature was lost! –  Included support for annotations, though Source: Wikipedia 5
  • 6. 2000: The Internet Explorer 5.5 Browser •  The mainstream Web browser •  The user reading a Web page can edit the entire page –  document.designMode –  element.contentEditable Source: Wikipedia 6
  • 7. ????: JavaScript-Based WYSIWYG Editors •  Can be embedded into any Web page •  http://testbed.tml.hut.fi/tutorial/ htmleditors.xformsdb Source: XFormsDB 7
  • 9. Google's "Hype Cycle" for HTML5 1st WHATWG draft 1st W3C draft Source: Google Insights for Search 9
  • 10. Features Related to Editing Documents •  The contentEditable attribute •  The designMode property •  Editing APIs •   WYSIWYG editing for Web pages –  Certain elements can be restricted from being edited •   Implemented in all major browsers 10
  • 11. Demo 11
  • 13. HTML Element's contenteditable Attribute •  Governs just the element on which it appears, and that element's children –  That is, makes those elements editable •  Enables Web developers to build element-level rich text editors •  W3C Working Draft –  http://www.w3.org/TR/html5/editing.html#contenteditable 13
  • 14. The API calls •  element.contentEditable [= value] •  element.isContentEditable 14
  • 15. Actions within Editing Hosts •  Move the caret •  Change the selection •  Insert text •  Break block •  Insert a line separator •  Delete •  Insert, and wrap text in, semantic elements •  Select and move non-editable elements nested inside editing hosts •  Edit form controls nested inside editing hosts 15
  • 17. Document Object's designMode Property •  Governs the entire document –  That is, makes the entire document editable •  Enables Web developers to build document-level rich text editors •  W3C Working Draft –  http://www.w3.org/TR/html5/editing.html#designMode 17
  • 18. The API calls •  document.designMode [= value] 18
  • 20. Document Object's Editing APIs •  A set of API calls to issue commands (e.g., bold and italic) on the editable region−that is, a document or an element), and to query the current state of the region •  W3C Working Draft –  http://www.w3.org/TR/html5/dnd.html#editing-apis 20
  • 21. The API calls •  document.execCommand( commandId [,... [,...]] ) •  document.queryCommandEnabled( commandId ) •  document.queryCommandIndeterm( commandId ) •  document.queryCommandState( commandId ) •  document.queryCommandSupported( commandId ) •  document.queryCommandValue( commandId ) 21
  • 22. Possible values for commandId (specified by W3C) •  bold, italic, subscript, superscript •  createLink, unlink, formatBlock •  delete, forwardDelete •  insertImage, insertHTML, insertLineBreak, insertOrderedList, insertUnorderedList, insertParagraph, insertText •  redo, undo, selectAll, unselect •  vendorID-customCommandID •  Anything else  do nothing 22
  • 23. ExecCommand Demo http://www.quirksmode.org/dom/execCommand/ 23
  • 24. Implementation Status Source: http://caniuse.com/ 24
  • 26. Research Topics •  Code debugging game called Gidget (Lee and Ko, 2011) •  Collaborative, lightweight in-line editing (Rees, 2000) •  Web as an application platform (Taivalsaari and Mikkonen, 2011 & Anttonen et al., 2011) •  Collaborative and interactive document editing (Fujimoto and Matsuo, 2006) 26
  • 28. Conclusion •  Support for in browser rich text editing has come and gone during the history of the Web •  HTML5 provides improvements related to editing documents in browsers –  Some compatibility problems between different browsers •  Typically used together with other HTML5 features, such as client-side databases as well as drag-and-drop •  "This document cannot be edited"  Will this change the way we interact with documents permanently? 28
  • 29. References •  Rees, M.J. "User Interfaces for Lightweight In-Line Editing of Web Pages". In AUIC, 2000. •  Taivalsaari, A. and Mikkonen, T. "The Web as an Application Platform: The Saga Continues". In SEAA, 2011. •  Lee, M.J. and Ko, A.J. "Personifying Programming Tool Feedback Improves Novice Programmers' Learning". In ICER, 2011. •  Anttonen, M. et al. "Transforming the Web into a Real Application Platform: New Technologies, Emerging Trends and Missing Pieces". In SAC'11, 2011. 29
  • 30. Thank You! Questions? Comments? markku.laine@aalto.fi 30