You can't find <ul class="header links">
tag in whole magento directory you can find <li class="greet welcome">
in below path :
vendor/magento/module-theme/view/frontend/templates/html/header.phtml
Actually <ul>
tags comes from the vendor/magento/module-theme/view/frontend/layout/default.xml
below is code.
<block class="Magento\Customer\Block\Account\Navigation" name="top.links">
<arguments>
<argument name="css_class" xsi:type="string">header links</argument>
</arguments>
</block>
Using above XML magento create HTML tag in container. below is the list of the allowed tag.
protected $allowedTags = [
'aside',
'dd',
'div',
'dl',
'fieldset',
'main',
'nav',
'header',
'footer',
'ol',
'p',
'section',
'table',
'tfoot',
'ul',
];
You will see it in class Magento\Framework\View\Layout\Container.
And here, Magento render a container to HTML. You can rewrite it <ul>
tag (I have no idea how to rewrite or change tag) Magento/Framework/View/Layout.php
protected function _renderContainer($name)
{
$html = '';
$children = $this->getChildNames($name);
foreach ($children as $child) {
$html .= $this->renderElement($child);
}
if ($html == '' || !$this->structure->getAttribute($name, Element::CONTAINER_OPT_HTML_TAG)) {
return $html;
}
$htmlId = $this->structure->getAttribute($name, Element::CONTAINER_OPT_HTML_ID);
if ($htmlId) {
$htmlId = ' id="' . $htmlId . '"';
}
$htmlClass = $this->structure->getAttribute($name, Element::CONTAINER_OPT_HTML_CLASS);
if ($htmlClass) {
$htmlClass = ' class="' . $htmlClass . '"';
}
$htmlTag = $this->structure->getAttribute($name, Element::CONTAINER_OPT_HTML_TAG);
$html = sprintf('<%1$s%2$s%3$s>%4$s</%1$s>', $htmlTag, $htmlId, $htmlClass, $html);
return $html;
}
I hope it helps to solve out your issue!