Sergiu Dumitriu wrote:
> Anca Paula Luca wrote:
>> Marius Dumitru Florea wrote:
>>> B) If the caret is at the beginning of a list item then indent that item 
>>> (or outdent with Shift). By indent I mean make it a subitem of the 
>>> previous list item.
> 
> +1, with the condition that list items should not become out of order,
> meaning that pressing tab will not create a third level item as a child
> of a first level item. Current editors allow something like this to

Would the following be considered a proper indentation?

<ul>
   <li>
     <ul>
       <li>x</li>
     </ul>
   </li>
</ul>

This is the HTML generated for "** x" in xwiki/2.0. I think we should do 
the same in the WYSIWYG. Of course for this I'll have to overwrite the 
default list and indent/outdent support which currently generates 
invalid HTML for nested lists. Indent would then not only visually move 
the list item to the left but down also.

[snip]

>>> Regarding C), it's difficult to have the same behavior. What we can do is:
>>>
>>> C1) Insert spaces (say 4); we would have to use non-breaking spaces of 
>>> course.
> 
> +0. If users want to indent, they will be able to do that with spaces
> (since now spaces are meaningful). Not doing this will not convince
> users not to indent paragraphs; they will continue to do this using
> spaces, but they will have one more grudge against XWiki. I implied that
> the spaces are inserted at the cursor position, and not at the start of
> the paragraph.

Yes, spaces would be inserted at the caret position.

[snip]

> OTOH, not doing this means that there's no way to navigate out of the
> editor without the use of the mouse. And I strongly disagree with this.
> I don't like taking my hands off the keyboard. When I find something
> that doesn't work without the mouse in a site, the
> accessibility/usability pseudo-expert in me wakes up and gets very
> angry. VERY angry.

And you propose?

> 
>> and also:
>> C5) if the cursor is at the beginning of a paragraph it should indent the 
>> first 
>> line in the paragraph (the CSS way), but I am pretty sure that's too much 
>> trouble.
> 
> -0.5. This requires presentation rules to be embedded in the content. I
> know that many things will require the use of embedded style, but this
> is not essential, thus I'd rather avoid it.

-0

> 
> C6) Move to the start of the next block element (prev with shift).
> 
> -0, since no text editor does this (spreadsheet software does this, but
> that's the same as with tables).

-0

> Other questions:
> - What does GoogleDocs do?

* Tab outside a list item or table cell inserts 4 spaces at the caret 
position or in place of the current selection (inside a span with no 
styles applied to it; I don't understand why they use a span since if 
you delete the spaces the empty span remains as HTML garbage)

* Shift+Tab moves the focus out of the rich text area to the previous 
focusable element.. :|

* [Shift+]Tab inside a table cell behaves as in Open Office. The 
selected text (if any) is not deleted.

* Tab at the beginning of the first _empty_ list item indents the list 
using style="margin-left: 40px"; each Tab increases the left margin with 
40px.. :| Shift+Tab removes the list.. :|

* Tab inside a list item no matching the previous case indents the list 
item. Even in the middle of the text :|. Shift+Tab outdents. The 
selection is not cleared.

* If the selection spans across more list items, but not all, then Tab 
indents those list items. Shift+Tab outdents. Selection is not cleared.

* if the selection spans across all list items from a list then pressing 
Tab indents that list using CSS as previously described. Shift+Tab 
removes the list if the left margin is 120px.. :|

* if the selection spans across more table cells then pressing a Tab 
deletes the selected text and inserts 4 spaces in the cell where the 
selection started :| Shift+Tab moves the focus out of the rich text area 
to the previous focusable element.. :|

...

> - What happens when pressing tab in/on other types of content, like
> images, macros, definition lists, code (which is a kind of macro).

Each could easily have their own custom behavior. But let's decide first 
for paragraphs, list items and table cells.

> - What happens when a selection exists? In one para, and cross-para?

It depends on the action taken:

* Insert: deletes the selected text and places the inserted text where 
the selection started.
* Indent: keeps the selection.
* Navigate: you have to collapse the selection in order to move the caret.

Thanks,
Marius
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to