execCommand("indent") conflicts with the content model of <ul>/<ol>
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 202
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
Consider the following tree:
<ul>
<li>first</li>
<li>second</li>
</ul>
Here, execCommand("indent") on the second list item generates the following tree:
<ul>
<li>first</li>
<ul><li>second</li></ul>
</ul>
The resulting tree inserts a <ul> inside another <ul>, conflicting with HTML:
Content model:
Zero or more li and script-supporting elements.
I guess we have two options:
- Change the indentation behavior: I don't think we want to change the behavior that has been there for decades, though. The previous author also preferred the current behavior because of algorithm simplicity.
- Change HTML. This was once rejected but IMO is the way to go for web compatibility.
Pinging @annevk for the HTML part.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the example trees in this issue, then read the linked HTML ul content model and the execCommand indentation algorithm. A resolution would require deciding whether to change indentation behavior or the HTML model, followed by updating the relevant specification text; no file or test is identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- html
- Domain
- documentation, web-dev
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100