﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
11636	Introduce new, focused on UX, methods for getting selected HTML and deleting it	Piotr Jasiun	Olek Nowodziński	"Short description - we need methods which will retrieve and extract HTML in a way correct from user experience POV. For example when selection is inside `<strong>`, we need not only text that's selected, but also information about the style applied in this location, so that `<strong>` tag.

=== Outdated description: ===

Because of custom implementation of drag & drop (#11460) we will use  `selection.getSelectedHTML` and `range.deleteContents` more often to read and remove dragged HTML. Current implementation of `selection.getSelectedHTML` can not be based on `range.cloneContents` because it changes range (#11586) and works not as we could expected.

For this reasons we need to reimplement `selection.getSelectedHTML`, `range.cloneContents` and `range.deleteContents`.

`range.cloneContents` and `range.deleteContents` should behave more as user could expect than simple clone or delete. For example:
 - for '`xx<a href=""foo"">b[a]r</a>xx`' `range.cloneContents` should return '`<a href=""foo"">a</a>`',
 - for '`<p>[foo]</p>`' `range.deleteContents`' should remove whole paragraph,
 - for '`<table><tr>[<td>foo</td><td>b]ar</td></tr></table>`' `range.deleteContents` should change contents to the '`<table><tr><td></td><td>ar</td></tr></table>`'.

`selection.getSelectedHTML` should be based on `range.cloneContents`."	New Feature	assigned	Normal		General				
