Совершенно определенно все вещи из Вашего списка для каждого отдельного объекта:
От вершины моей головы не очень еще, но для группы тестов я хотел бы знать
Я узнал, как это сделать.
Вы используете свойство contentEditable объекта DOMElement, например
<div onClick="this.contentEditable='true';">
lorem ipsum dolor lorem ipsum dolorlorem ipsum dolor
</div>
How about his:
Создайте скрытую «область текста» и при выборе (щелкнув или наведите ) div, скройте Div и покажите textArea.