[Webkit-unassigned] [Bug 30966] New: Pressing backspace merges normal text into header but style still looks normal
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Oct 30 15:18:54 PDT 2009
https://bugs.webkit.org/show_bug.cgi?id=30966
Summary: Pressing backspace merges normal text into header but
style still looks normal
Product: WebKit
Version: 528+ (Nightly build)
Platform: PC
URL: http://www.mozilla.org/editor/midasdemo/
OS/Version: Windows XP
Status: UNCONFIRMED
Severity: Normal
Priority: P2
Component: HTML Editing
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: marcosalmeida at google.com
1. Go to http://www.mozilla.org/editor/midasdemo/
2. Type "Foo"+<enter>+"Bar"
3. Double-click "Foo" and choose Heading 1 from the first dropdown in the
second toolbar
--> "Foo" is a header and "Bar is normal text.
Current html is: <h1>Foo</h1><div>Bar</div>
4. Place cursor in front of "Bar" and press backspace
--> "Bar" moves up to the same line as "Foo"; visibly both words still have
the same font size and weight.
Current html is: <h1>Foo<span class="Apple-style-span" style="font-size:
medium; font-weight: normal; ">Bar</span></h1>
5. Press enter.
--> The line is split into two and looks just like after step 3.
Current html is: <h1>Foo</h1><h1><span class="Apple-style-span"
style="font-size: medium; font-weight: normal; ">Bar</span></h1>
Visibly this looks fine, but the bad side effect is that "Bar" is inside an
<h1> even though to the user it looks like normal text. I understand that "Bar"
is placed inside the <h1> when you press backspace because <h1> is a block
level element so you put the text inside it so that it can be on the same line.
But you're changing the semantics of "Bar" -- it's now a header since it's
inside the <h1>, not normal text -- and the user has no visual cue that that
happened. So when they press enter and "Bar" shows up on its own line, they
don't expect it to be a header. But if any application is examining the html to
determine the semantics of the content, it will determine that "Bar" is a
header.
A possible solution is to not put "Bar" inside the <h1> on backspace, but
rather set the <h1> to display:inline to allow "Bar" to be on the same line.
However, this has a side effect: after you hit enter again, the display:inline
remains, making the spacing between the two lines smaller than before. Also, it
might break any apps that assume that <h1> is always display:block.
Another possibility is to do what other browsers and even MSWord do: don't
attempt to keep the font size and weight of "Bar" when you insert it into the
<h1>. That way the user knows that "Bar" became a header, and if they press
enter and don't want it to be a header any more, they will remove the
formatting on it.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list