Many WYSIWYG editors will automatically join adjacent lists or other kinds of nodes on some operations. They, for the most part, seem to allow adjacent but separate lists, but many actions, such as creating or pasting a list item, will join the list to the one above (but not below, in Google Docs).
This has the advantage that it is usually what the user meant – actual adjacent lists are a rare thing (but do come up). It has the disadvantage of being somewhat magical.
I initially thought that having a ‘join nodes’ control (see the
joinDown commands) would be a better, more predictable interface to this. And to a certain extent, I still like this approach — it gives control over whether you want to have your lists melt together or not, is general (also useful for joining list items or sections), and allows you to explicitly join nodes after the fact, which, in Google Docs, I could not find a way to do except removing and re-adding list style to the whole list.
But this approach is not what people are used to, and I expect it’ll be a bit abstract and unexpected for many users.
So I want to ask the community about expectations and mental models that you have. Do you like automatic joining of lists? Would you prefer it to happen always, or only in response to certain user actions? Which of these actions should join?
- Creating a new list above, below, or between existing lists
- Pasting a list / list item above, below, or between
3.below a two-item numbered list
1.below a numbered list
- Deleting across two lists
- Deleting a paragraph that sat between lists
- Lifting a list out of a parent node so that it appears above/below another list
- Joining two parent nodes so that the newly joined node now has two adjacent lists
Any ideas? Other relevant considerations?