Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
hoverとタッチスクリーンデバイス
Search
shira
September 30, 2020
Programming
1.5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
hoverとタッチスクリーンデバイス
shira
September 30, 2020
More Decks by shira
See All by shira
開発プロセスとアクセシビリティ
shira
1
110
通知UIを改善している話
shira
2
3.7k
:is()と:where()の話
shira
0
5.8k
実践アクセシビリティ in Angularアプリケーション
shira
0
710
犬顔or猫顔判定アプリを作っている話.pdf
shira
1
210
社内LT大会開催に至るまでの話
shira
4
490
Other Decks in Programming
See All in Programming
ソフトウェアラスタライザ
fadis
1
790
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
6
2.5k
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
630
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.7k
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
140
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
590
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
170
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
110
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
2
350
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
980
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
From π to Pie charts
rasagy
0
360
Leo the Paperboy
mayatellez
8
2.2k
How to train your dragon (web standard)
notwaldorf
97
6.8k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.7k
Code Reviewing Like a Champion
maltzj
528
40k
Transcript
hoverと タッチスクリーンデバイス 2020.09.30 Kaori Shirahama @Frontend Conference Fukuoka スピンオフ ~福岡人大集合の会~
自己紹介 • しらはま かおり(@9v9Shira) • フロントエンド エンジニア at 株式会社トレタ •
普段はAngularでWebアプリ作ってる • 最近a11yへの興味が高まっている • 兵庫 → 福岡 → 東京
Q. タッチスクリーンデバイスでも hoverのスタイルを 指定するべきか?
PCブラウザ、タブレットブラウザ(iPad Safari) で同じスタイルをつけていた
:hover の挙動が PCブラウザとiPad Safariで違う…
iPad Safariでの挙動
デフォルトが背景青状態とする
タップすると :hover のスタイルが 適用される
指を離してもそのまま
他のところをタップすると :hover のスタイルが外れる
マウス、トラックパットでの操作は PCと同じ
タッチスクリーンデバイスにおける hoverの概念とは?
CSS の :hover 疑似クラスは、ユーザーがポインティング デバイスで要素に反応したものの、アクティブ化する必要 がないものを選択します。普通はユーザーがカーソル(マ ウスポインタ―)で要素の上をホバー(通過)させたとき にこの状態になります。 MDN Web
Docs.「:hover - CSS: カスケーディングスタイルシート | MDN 」. https://developer.mozilla.org/ja/docs/Web/CSS/:hover, (参照 2020-09- 29) MDN :hover
CSS の :hover 疑似クラスは、ユーザーがポインティング デバイスで要素に反応したものの、アクティブ化する必要 がないものを選択します。普通はユーザーがカーソル(マ ウスポインタ―)で要素の上をホバー(通過)させたとき にこの状態になります。 MDN Web
Docs.「:hover - CSS: カスケーディングスタイルシート | MDN 」. https://developer.mozilla.org/ja/docs/Web/CSS/:hover, (参照 2020-09- 29) MDN :hover メモ: :hover 疑似クラスはタッチスクリーンで問題になります。 ブラウザ―によっては、 :hover 疑似クラスが全く選択され なかったり、要素をタッチした直後だけ選択されたり、 ユーザーがタッチをやめるても選択され続け、他の要素に タッチするまで続いたりします。ウェブの開発者は、ホ バー機能が制限されていたり存在しなかったりしても、コ ンテンツにアクセスできるように考慮してください
タッチスクリーンには hoverの概念がないため 挙動が異なるのは仕方ない
どうするのが良い?
想定される入力方法 マウス ・ トラックパッドを 使う キーボードを使う タッチスクリーンを 直接操作する
マウス ・ トラックパッドを 使う タッチスクリーンを 直接操作する :hover の影響を受ける入力方法
マウス ・ トラックパッドを 使う タッチスクリーンを 直接操作する :hover の影響を受ける入力方法 良い影響を受ける 悪い影響を受ける
タッチスクリーンデバイスで マウス・タッチパッドを 使用するユーザーに hover時のスタイルを表示する タッチスクリーンで 直接操作するユーザーを 混乱させない どっちを優先する?
タッチスクリーンデバイスで マウス・タッチパッドを 使用するユーザーに hover時のスタイルを表示する タッチスクリーンで 直接操作するユーザーを 混乱させない 悪い影響をなくすことを優先
Q. タッチスクリーンデバイスでも hoverのスタイルを 指定するべきか?
A. タッチスクリーンデバイスでは hoverスタイルを 指定しない方が良い!
やったこと iPadだけスタイルを切った デバイスがiPadだったらclassに「.iPad」を付与するよ うにし、あとはCSSで調整
めでたし
気になること
メディア特性使えないかな?
hover any-hover pointer any-pointer メディア特性が 使えたら楽そうで いいなぁ
hover any-hover pointer any-pointer メディア特性が 使えたら楽そうで いいなぁ hover 一番使えそう
hover
hover none 主な入力手段で全くホバーできないか、差し支えなくホ バーすることができない、又は主な入力手段がない。 hover 主な入力手段で、要素の上で差し支えなくホバーするこ とができる。
hover none 主な入力手段で全くホバーできないか、差し支えなくホ バーすることができない、又は主な入力手段がない。 hover 主な入力手段で、要素の上で差し支えなくホバーするこ とができる。 hoverの挙動を保証できない hoverの挙動保証できる
• any-hover 入力メカニズムで、ユーザーが要素上でのホバーを使用す ることができるものがあるか • pointer 主要な入力メカニズムがポインティングデバイスである か、もしそうであればどれだけ正確なものであるか • any-pointer
入力メカニズムにポインティングデバイスがあるか、もし そうであればどれだけ正確なものか
試した
MacBook Pro Google Chrome any-hover : hover hover: hover any-pointer:
fine pointer: fine
MacBook Pro Google Chrome any-hover : hover hover: hover any-pointer:
fine pointer: fine 差し支えなくhoverができる 正確性の高いポインティング デバイスがある
iPad(第6世代)iPad Safari any-hover : none hover: none any-pointer: coarse pointer:
coarse
iPad(第6世代)iPad Safari any-hover : none hover: none any-pointer: coarse pointer:
coarse hoverの挙動を保証できない ポインティングデバイスはあるが 正確性が曖昧
Pixel3a Google Chrome any-hover : none hover: none any-pointer: coarse
pointer: coarse
Pixel3a Google Chrome any-hover : none hover: none any-pointer: coarse
pointer: coarse hoverの挙動を保証できない ポインティングデバイスはあるが 正確性が曖昧
hoverメディア特性 使えそう! (IE11では使えない)
まとめ
タッチスクリーンデバイスでは hoverスタイルを 指定しない方が良いぞ!
hoverスタイルの制御は hoverメディア特性が使えるぞ!
ありがとうございました!
参考 • デザイニングWebアクセシビリティ - アクセシブルな設計やコンテンツ制作のアプローチ https://www.amazon.co.jp/dp/4862462650 • コーディングWebアクセシビリティ - WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション
https://www.amazon.co.jp/dp/4862462669 • MDN web docs • https://developer.mozilla.org/ja/docs/Web/CSS/:hover • https://developer.mozilla.org/ja/docs/Web/CSS/@media/hover • https://developer.mozilla.org/ja/docs/Web/CSS/@media/any-hover • https://developer.mozilla.org/ja/docs/Web/CSS/@media/pointer • https://developer.mozilla.org/ja/docs/Web/CSS/@media/any-pointer etc…