Bug 112201

Summary: Label elements aren't firing events properly when "contenteditable".
Product: WebKit Reporter: Skyler Brungardt <skyler.brungardt>
Component: DOMAssignee: Nobody <webkit-unassigned>
Status: UNCONFIRMED ---    
Severity: Major CC: alexander.shalamov, annamarsh001, ap, esprehn, girls-lead, jamesr, michaelvetori, rniwa, skyler.brungardt
Priority: P1    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
URL: http://jsfiddle.net/wtJVd/10/

Description Skyler Brungardt 2013-03-12 15:33:37 PDT
Overview:

<label> elements with the contenteditable attribute set to "true" don't fire events properly – they should fire keyboard events for keydown, keyup, keypress, along with events for blur and focus, and only fire an 'input' event.  Comparably, a <div> fires all of the events properly.

Steps to Reproduce:

Visit this example: http://jsfiddle.net/wtJVd/10/

Open the error console.  Try focusing, blurring, and typing on the div element in the example, and then try on the label element.  Notice which events are logged to the console, and which aren't.

Actual Results:

The only function assigned to an event listener on the label element is the function assigned to the 'input' event.

Expected Results:

All of the functions should get called for both elements on both events.

Build Date & Platform:

2013-03-12, Version 6.0.2 (8536.26.17, 537+), Mac OS 10.8.2

Other Builds & Platforms:

Existent in other browsers based upon Webkit in both Mac OS and Windows (e.g. Chromium).  Not present in Firefox.
Comment 1 Alexander Shalamov 2013-03-15 01:41:05 PDT
At the moment, label element is not focusable, therefore, onfocus and onblur events are not fired, even when label has contenteditable attribute set.
Comment 2 Skyler Brungardt 2013-03-15 09:22:10 PDT
I'm guessing that label elements aren't generally focusable due to their relationship with input elements.  Seems that they should be focusable if they're contenteditable, however.
Comment 5 Lucas Forschler 2019-02-06 09:18:27 PST
Mass move bugs into the DOM component.