目次
方法1:シンプル(ただし、欠陥)包む
方法2:必要な要素のみをリンクします
方法4:方法2のJavaScriptの強化
ホームページ ウェブフロントエンド CSSチュートリアル ブロックリンク:完璧なソリューションの検索

ブロックリンク:完璧なソリューションの検索

Apr 06, 2025 am 09:44 AM

ブロックリンク:完璧なソリューションの検索

クリスは最近、「ブロックリンク」のアクセシビリティとUXの欠点を強調しました。これは、アンカータグ内のカード要素全体を描いています。この記事は、問題がパターン自体にあるのかその実装にあるのかを調査し、課題を再検討します。これらの問題に対処するカードコンポーネントを作成することを目指します。 「カード」とは、ブロックリンクパターンを使用するコンポーネントを指します。

理想的なカードコンポーネントは、これらの基準を満たす必要があります。

  1. 完全にクリック可能でリンクされています。
  2. 複数の内部リンクに対応します。
  3. 支援技術の互換性のためにセマンティックHTMLを維持します。
  4. 標準リンクのようなテキスト選択を許可します。
  5. サポート右クリックとキーボードショートカット。
  6. フォーカス可能な要素の適切なタブ注文を確認します。

ブラウザには標準のカードウィジェットがないため、これは大きな課題です。いくつかのアプローチを調べてみましょう。

方法1:シンプル(ただし、欠陥)<a></a>包む

最も単純なアプローチ - カード全体をand<a></a>タグ - も最も効果的ではありません。基本的なクリック可能性と右クリック/キーボードのショートカット機能を達成しながら、いくつかの面で失敗します。

  1. カード内のネストされたリンクを防ぎます。
  2. アクセシビリティを妥協します。スクリーンリーダーは、カード全体のコンテンツを無差別に発表する場合があります。
  3. テキストの選択を無効にします。

この方法は明らかに不十分です。

方法2:必要な要素のみをリンクします

このアプローチは、リンクが必要な個々の要素のみをリンクすることにより、アクセシビリティを優先します。これは正常に対処します:

  1. 複数の内部リンク。
  2. セマンティックHTML。
  3. テキスト選択。
  4. 右クリック/キーボードショートカット。
  5. タブオーダー。

ただし、完全なカードクリック可能性の重要な機能がありません。

方法3:::擬似要素アプローチ::before

a ::before orまたは::afterカードの上に絶対に配置された後、クリック可能な領域が提供されます。ただし、この方法はまだ次のとおりです。

  1. ネストされたリンクの制限。擬似要素層は、基礎となるリンクをクリックします。
  2. テキストの選択は問題のままです。

より堅牢なソリューションが必要です。

方法4:方法2のJavaScriptの強化

方法2に基づいて、進行性の強化のためにJavaScriptを活用できます。クリックイベントリスナーをカードに追加し、メインリンクのクリックイベントをプログラム的にトリガーします。テキスト選択への干渉を防ぐために、 window.getSelection().toString()を使用して、リンクをトリガーする前にテキストが選択されているかどうかを確認します。

 const card = document.queryselector( "。カード");
const mainlink = document.queryselector('。main-link ');

Card.AddeventListener( "Click"、Handleclick);

function handleclick(event){
  const istextselected = window.getSelection()。toString();
  if(!istextSelected){
    mainlink.click();
  }
}

//カード内のクリック可能な要素でのイベントの伝播を防ぐ
const clickableElements = array.from(card.queryselectorall( "a"));
ClickableElements.foreach((ele)=>
  ELE.ADDEVENTLISTENER( "Click"、(e)=> e.StopPropagation())
);
ログイン後にコピー

このアプローチは、すべての要件を正常に満たしています。ただし、内部リンクとボタンでの潜在的な二重イベントトリガーが必要になる場合があります。

このソリューションは、機能的でアクセス可能なクリック可能なカードコンポーネントを提供します。 「続きを読む」リンクや画像を使用してカードを処理するなど、さらなる考慮事項には、追加の調査が必要です。

さらに読むために:

  • ヘイドンピカリングによるカード
  • エイドリアン・ロゼリによるリンク、カード、クリック可能な領域、行などをブロック
  • ブロックリンクは、Chris Coyierによる痛み(そしておそらく悪い考えかもしれません)です
  • Dave RupertによるカードUIの落とし穴

以上がブロックリンク:完璧なソリューションの検索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GraphQLキャッシングの使用 GraphQLキャッシングの使用 Mar 19, 2025 am 09:36 AM

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

Redwood.jsと動物相を使用してイーサリアムアプリを構築します Redwood.jsと動物相を使用してイーサリアムアプリを構築します Mar 28, 2025 am 09:18 AM

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

Eleventyで独自のBragdocを作成します Eleventyで独自のBragdocを作成します Mar 18, 2025 am 11:23 AM

開発者としての段階に関係なく、私たちが完了したタスクは、大小を問わず、個人的および専門的な成長に大きな影響を与えます。

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは&#039; Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

レスポンシブデザインのブラウザを比較します レスポンシブデザインのブラウザを比較します Apr 02, 2025 pm 06:25 PM

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

See all articles