Solução alternativa do dagre-d3 para o elemento SVG foreignObject?

Eu sou um co-op de graduação e atualmente estou desenvolvendo um projeto de página da Web para a minha equipe. No começo, optei por usar a biblioteca dagre-d3 para construir gráficos, e eles funcionam bem no Chrome. Então percebo que o elemento ForeignObject no SVG não funciona no IE (que é o principal navegador a ser suportado).

Como meu objetivo é essencialmente preencher o conteúdo HTML em cada componente do gráfico, fiquei me perguntando se havia alguma solução alternativa para implementar isso no IE ainda usando o dagre-d3. Ou alguma recomendação para uma biblioteca de gráficos diferente?

ATUALIZAR:

Essencialmente, eu queria criar um gráfico mostrado na imagem abaixo:

Abaixo está o código que eu uso agora para construir o gráfico usando dagre-d3:

Snippet HTML:

<div id="graph-section">
    <svg>
        <g transform="translate(20,20)" />
    </svg>
</div>

Snippet JS:

var g = new dagreD3.Digraph();

// Construct nodes
for (var i = 0; i < data.nodes.length; i++) {
    var label = "<div class='graphLabel'>";
    label += "<div class='comp" + data.nodes[i].value.type + " left'>&nbsp;</div>";
    label += "<b>&nbsp;" + data.nodes[i].value.name + "</b><br/>";
    label += "<span class='info'>Start: " + data.nodes[i].value.start + "</span><br/>";
    label += "<span class='info'>End: " + data.nodes[i].value.end + "</span><br/>";
    label += "<span class='info'>Launched by " + data.nodes[i].value.user + "</span>";
    label += "</div>";
    g.addNode(data.nodes[i].id, { label: label });
}

// Construct edges
for (var j = 0; j < data.links.length; j++) {
    g.addEdge(null, data.links[j].start, data.links[j].end);
}

var layout = renderer.run(g, d3.select("#graph-section svg g"));

questionAnswers(2)

yourAnswerToTheQuestion