Opened 12 years ago

Last modified 12 years ago

#9301 closed Bug

Complete DTD for HTML5 — at Version 2

Reported by: Piotrek Koszuliński Owned by:
Priority: Normal Milestone: CKEditor 4.0
Component: Core : DTD Version: 4.0
Keywords: Cc:

Description (last modified by Piotrek Koszuliński)

Intro

Googling... googling... That's right - there's no DTD for HTML5 and there won't be any, because HTML5 cannot be defined by poor DTD. There are other schema languages like RELAX NG in which HTML5 may be defined, but AFAIK WHATWG won't create schema for HTML5.

Subject of this task

We need to update our pseudo-DTD with HTML5's new stuff. See e.g. https://github.com/ckeditor/ckeditor-dev/pull/6

The purpose of CKEDITOR.dtd is mainly to validate DOM tree structure + few more specific for editor things (like the list of editable elements). Unfortunately in current CKEDITOR.dtd's format we won't be able to define HTML5's precisely.

I see two main problems:

  1. Transparent elements (http://dev.w3.org/html5/markup/terminology.html#transparent) E.g. if <a> is a child of <div>, then <a> may contain block elements (in HTML5's terminology - flow elements (http://dev.w3.org/html5/markup/common-models.html#common.elem.flow)) and inline elements (phrasing elements). If <a> is a child of <p>, then it may contain phrasing elements only.
  2. Nesting rules dependent on attributes/sth else. E.g. if <audio> doesn't have src attr it may contain <source> elements. Otherwise it may not.

We are not able to handle 1. and I believe that we've got to live now with the current state of things. However, for 2., rules of our DTD should just be as tolerant as possible. That's the solution for now.

Change History (2)

comment:1 Changed 12 years ago by Piotrek Koszuliński

Description: modified (diff)

comment:2 Changed 12 years ago by Piotrek Koszuliński

Description: modified (diff)
Note: See TracTickets for help on using tickets.
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy