Я настоятельно рекомендую не использовать полный компонент Angular для вкладок из Clarity, а только статический DOM, который Clarity поддерживает для вкладок:
<ul class="nav" role="tablist">
<li role="presentation" class="nav-item">
<button class="btn btn-link nav-link active" aria-selected="true">First tab</button>
</li>
<li role="presentation" class="nav-item">
<button class="btn btn-link nav-link">Second tab</button>
</li>
<li role="presentation" class="nav-item">
<button class="btn btn-link nav-link">Third tab</button>
</li>
</ul>
<section role="tabpanel">
<iframe></iframe>
</section>
Если у вас есть это в шаблоне, вы можете легко добавить прослушиватели кликов к этим кнопкам и запускать все, что вам нужно для iframe.
Проблема с наличием вкладок за пределами iframe, которую я вижу, заключается в том, что у вас нет возможности сделать это доступным. Вкладки никогда не будут связаны с содержанием iframe, поэтому программы чтения с экрана никогда не смогут описать, что вкладки активируют.
Поскольку вкладки Clarity построены с возможностью доступа по своей сути, им требуется отдельная панель для каждой вкладки, чтобы мы могли связать их через атрибуты ARIA, такие как aria-controls
и aria-labelledby
. Тот факт, что у вас есть одна панель, означает, что вы не можете использовать угловой компонент из Clarity.