code: @Override
    protected void visitHtmlOpenTagNode(HtmlOpenTagNode node) {
      if (node.getKeyNode() != null) {
        // Push key BEFORE emitting `elementOpen`. Later, for `elementOpen` calls of keyed elements,
        // we do not specify any key.
        Expression key = translateExpr(node.getKeyNode().getExpr());
        getJsCodeBuilder().append(INCREMENTAL_DOM_PUSH_MANUAL_KEY.call(key));
      }
  
      Expression tagCodeChunk = getTagNameCodeChunk(node.getTagName());
      emitOpenAndVisitAttributes(node, tagCodeChunk);
  
      // Whether or not it is valid for this tag to be self closing has already been validated by the
      // HtmlContextVisitor.  So we just need to output the close instructions if the node is self
      // closing or definitely void.
      if (node.isSelfClosing() || node.getTagName().isDefinitelyVoid()) {
        emitClose(tagCodeChunk);
      }
    }
docs: Visits an {@link HtmlOpenTagNode}, which occurs when an HTML tag is opened with no conditional
  attributes. For example:
  
  <pre>
  &lt;div attr="value" attr2="{$someVar}"&gt;...&lt;/div&gt;
  </pre>
  
  generates
  
  <pre>
  IncrementalDom.elementOpen('div');
  IncrementalDom.attr('attr', 'value');
  IncrementalDom.attr('attr2', someVar);
  IncrementalDom.elementClose();
  </pre>