add external link UX: icons, rel attributes, screen reader labels

New external_link component in core_components handles target="_blank",
rel="noopener noreferrer", external-link icon, and sr-only "(opens in
new tab)" text. Migrated admin providers form, settings (Stripe),
order tracking, onboarding setup links to use it. Fixed rel="noopener"
to "noopener noreferrer" on remaining links (email settings, product
show, core_components card radio). Added sr-only text to shop social
link cards and aria-label to page renderer tracking link.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-04 00:55:09 +00:00
parent 696843bacd
commit 156a23da16
12 changed files with 58 additions and 30 deletions

View File

@@ -102,11 +102,12 @@ defmodule BerrypodWeb.Admin.ProductShow do
:if={provider_edit_url(@product)}
href={provider_edit_url(@product)}
target="_blank"
rel="noopener"
rel="noopener noreferrer"
class="admin-btn admin-btn-ghost admin-btn-sm"
>
Edit on {provider_label(@product)}
<.icon name="hero-arrow-top-right-on-square-mini" class="size-4" />
<span class="sr-only">(opens in new tab)</span>
</.link>
<.link
navigate={~p"/products/#{@product.slug}"}