Upgrade to Pro — share decks privately, control downloads, hide ads and more …

多様なユーザーニーズに応えるフロントエンドデザインパターン

Rikiya Ihara
September 24, 2017
5.9k

 多様なユーザーニーズに応えるフロントエンドデザインパターン

Rikiya Ihara

September 24, 2017
Tweet

Transcript

  1. <li> <h3> ガソリンスタンドにたたずむ裸の男 <a href="/artist/kenny-mulbarton">by <cite>ケニー・マルバートン </cite></a> </h3> <dl> <dt>サイズ:</dt><dd>90cm

    × 30cm</dd> <dt>価格:</dt><dd>35.95 ユーロ</dd> <dt>評価:</dt><dd><img src="/images/rating_4_5.svg" alt="">5 つ星のう ち4</dd> </dl> </li> 情報を追加
  2. <li> <h3> ガソリンスタンドにたたずむ裸の男 <a href="/artist/kenny-mulbarton">by <cite>ケニー・マルバートン </cite></a> </h3> <img src="/images/naked-forecourt-man.jpg"

    alt=" 裸の男性が何食わぬ顔で給油 ポンプにもたれかかっている、ハイコントラストの白黒写真。 " /> <dl> <dt>サイズ:</dt><dd>90cm × 30cm</dd> <dt>価格:</dt><dd>35.95 ユーロ</dd> <dt>評価:</dt><dd><img src="/images/rating_4_5.svg" alt="">5 つ星のう ち4</dd> </dl> </li> 代替テキストを追加
  3. 「今すぐ購入」ボタンについてのあれこれ • ボタン vs ボタン風リンク ◦ アンカー(<a>)にすべきか、ボタン(<button>)にすべきか? ◦ 見た目をどうすべきか ?

    • JavaScriptによる実装はどうか? • 「今すぐ購入」でいいのか? ◦ ユニークなテキストが必要ないか ? • そもそも「今すぐ購入」ボタンは必要なのか? ◦ 商品項目全体が押せればいいのではないか ?
  4. 3種のスタイルを用意する a { /* 標準のリンクのスタイル */ } a.call-to-action { /*

    強調されたリンクのスタイル */ } button { /* <button>要素のスタイル */ }
  5. 全体を押せるようにしてみる……? <li> <a href="/product/naked-man-in-garage"> <h3>ガソリンスタンドにたたずむ裸の男 </h3> <img src="/images/naked-forecourt-man.jpg" alt=" 裸の男性が何食わぬ顔で

    給油ポンプにもたれかかっている、ハイコントラストの白黒写真。 " /> <dl> <dt>サイズ:</dt><dd>90cm × 30cm</dd> <dt>価格:</dt><dd>35.95 ユーロ</dd> <dt>評価:</dt><dd><img src="/images/rating_4_5.svg" alt="">5 つ星 のうち 4</dd> </dl> </a> </li>
  6. Point 4 外部サイトでも使いやすく (SERP) 顧客が利用するのはサイト内のインターフェイスだけではありません。 サイトが適切にインデックス化されていれば、SERP (search engine results pages、検索エンジンの検索結果ページ)

    にも商品が表示されます。 特に支援技術ユーザーの中には、使い慣れたインターフェイスだという理由で、 Google検索に大きく依存している人もいます。
  7. Productボキャブラリーの使用 (使用前) <main id="main"> <h1>ガソリンスタンドにたたずむ裸の男 <a href="/artist/kenny-mulbarton">by <cite>ケニー・マルバートン </cite></a></h1> <img

    src="/images/naked-forecourt-man.jpg" alt=" 裸の男性が何食わぬ顔で給油 ポンプにもたれかかっている、ハイコントラストの白黒写真 " /> <dl> <dt>サイズ:</dt><dd>90cm × 30cm</dd> <dt>価格:</dt><dd>35.95 ユーロ</dd> <dt>評価:</dt><dd><img src="/images/rating_4_5.svg" alt="">5 つ星のう ち4</dd> </dl> <h2>支払い方法の選択</h2> <!-- ここに購入ウィジェット --> </main>
  8. <main id="main" itemscope itemtype="http://schema.org/Product" > <h1> <span itemprop="name"> ガソリンスタンドにたたずむ裸の男 </span>

    <a href="/artist/kenny-mulbarton">by <cite> ケニー・マルバートン </cite></a> </h1> <img itemprop="image" src="/images/naked-forecourt-man.jpg" alt=" 裸の男性 が何食わぬ顔で給油ポンプにもたれかかっている、ハイコントラストの白黒写真 " /> <dl> <dt>サイズ:</dt> <dd>90cm × 30cm</dd> <dt>価格:</dt> <dd> <span itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <meta itemprop="priceCurrency" content="EUR" /> <span itemprop="price"> 35.95</span>ユーロ </span> </dd>
  9. <dt>評価:</dt> <dd> <img src="/imagesrating_4_5.svg" alt=""> <span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <span

    itemprop="ra/tingValue"> 4</span>つ星、 レビュー数<span itemprop="reviewCount">13</span> </span> </dd> </dl> <h2>支払い方法の選択</h2> <!-- ここに購入ウィジェット --> </main>
  10. 隣接セレクタでlabelにスタイルを付ける [type="radio"] + label { cursor: pointer; /* その他、基本のスタイル */

    } [type="radio"]:focus + label { /* フォーカス時のスタイル */ } [type="radio"]:checked + label { /* 選択時のスタイル */ }
  11. ラジオボタンを隠す .sorter [type="radio"] { position: absolute !important; width: 1px !important;

    height: 1px !important; padding:0 !important; border:0 !important; overflow: hidden !important; clip: rect(1px, 1px, 1px, 1px); }
  12. submitイベントでXHRを呼び、フォーム送信を抑止 var sortForm = document.querySelector(' .sorter'); sortForm.addEventListener(' submit', function(event) {

    // XHRで処理するため、 // ブラウザがフォームを送信しないようにする event.preventDefault(); // ここでXHR処理 });
  13. <li> <h3 tabindex="-1"><!-- タイトルをフォーカス可能にする -->ガソリンスタンドにたたず む裸の男<a href="/artist/kenny-mulbarton">by <cite> ケニー・マルバートン </cite></a></h3>

    <img src="/images/naked-forecourt-man.jpg" alt=" 裸の男性が何食わぬ顔で給油ポ ンプにもたれかかっている、ハイコントラストの白黒写真。 " /> <dl> <dt>サイズ:</dt><dd>30cm × 90cm</dd> <dt>価格:</dt><dd>35.95 ユーロ</dd> <dt>評価:</dt><dd><img src="/images/rating_4_5.svg" alt="">5 つ星のうち 4</dd> </dl> <a href="/product/naked-man-in-garage" class="call-to-action"><span class="visually-hidden"> ガソリンスタンドにたたずむ裸の男を </span>今すぐ購入</a> </li> <li><!-- 新たに表示された商品の 2番目 --></li> <li><!-- etc --></li>