ここで問題になるのが<svg>下のHTML要素.
おそらくこのページに来た人は、SVGで作りこんだ図に編集可能textを入れ込みたいのだと思う.
つまり、<svg>要素下にrectやらcircleやら置いてあることになる.
textを編集可能にするために、上記の<div contenteditable>を利用すればよいわけだが... <svg>下にHTML要素(例えば<div>)を置くことはできないjavascript - How to append div tag into a SVG rect element? - Stack Overflow
そこで登場するのがforeignObject.
この要素を配置するとあら不思議、HTML要素をforeignObject下に配置しても無問題!!
よって
/** * Draw gantt chart * @param {string} text - gantt data, which will be parsed soon * @param {string} id - id of something HTML object * @returns {void} */function draw(text, id){}