タブに添えた閉じるボタンを読み上げに伝えるARIAの新しい属性

つくば市のホームページ制作会社

Chromeの安定版151が7月28日に公開された。大型の目玉機能というより細かい追加が並ぶ回だったが、そのなかにaria-actionsという属性が入っていて、これは現場の作り方に素直に馴染みそうだと感じた。ある要素に付き添っている別の操作ボタンの存在を、スクリーンリーダーなどの支援技術に伝えるための指定である。Chromeのリリースノートによると、W3CのARIA仕様に沿った形で実装されたとされている。

想定されている典型例は、タブの見出しに小さく付いている閉じるボタンだ。マウスで操作していれば見えているので迷わないが、キーボードと読み上げでたどっている人には、そのタブに閉じる手段が添えられていること自体が伝わりにくい。メールの一覧行に並ぶアーカイブや削除のボタン、カード型のリストに乗った編集ボタンなども同じ構図になる。主となる要素と、その脇に置かれた操作との関係を機械が読み取る手がかりがなく、支援技術の側から見つけづらいことは、以前から課題として挙げられていた部分だ。近くにボタンが置いてあることは、画面上の距離では明らかでも、読み上げの順番のなかでは伝わらない。結果として、タブ移動を重ねて偶然行き当たるまで存在に気づけない、という状態が起きていた。

既存のマークアップを壊さずに足せる

使い方は他のARIA属性と似ていて、主となる要素から、関連するボタンのidを指すだけでよい。属性を足しても見た目やクリックの挙動は変わらず、対応していないブラウザは単に無視する。既存のコンポーネントに後から付け足す形で試せるので、導入の判断はしやすい。開発者ツール側でも、他のid参照型のARIA属性と同じように、参照先がどの要素を指しているかを確認できるようになっている。W3C側の仕様もほぼ固まっており、Firefoxはすでに対応済み、WebKitは試作の段階と伝えられている。ChromeはまずWindows、Mac、Linuxのデスクトップで有効になり、モバイル向けは後続になるとのことだ。

もっとも、属性を書けばすぐ読み上げが変わるという話ではない。支援技術の側がこの関係をどう利用者に案内するかは、各社の実装がこれから揃っていく段階にある。ただMicrosoftのUI部品群を手がけるチームが早い時期の取り込みに前向きだと伝えられており、部品ライブラリ経由で静かに広まっていく類の機能ではありそうだ。自前でタブやリストのUIを組んでいるなら、仕様の様子を眺めておく価値はある。

中小企業のサイトでも、同じ形はあちこちにある。予約フォームの入力欄に添えたクリアボタン、実績一覧のカードに置いた詳細ボタン、通知バーの右端にある閉じる印。どれも見えている人には自明で、見えていない人には気づきにくい。ARIAは足しすぎるとかえって読み上げを濁らせるので万能ではないが、これまで説明のしようがなかった関係を素直に書ける手段が増えたのは、地味ながらありがたい変化だと思う。

カメラとマイクの許可をブラウザに任せるHTMLの新要素

つくば市のホームページ制作会社

ウェブサイトでカメラやマイクを使う場面は、ここ数年で少しずつ増えてきました。オンライン相談の入口、動画で送るお問い合わせ、現場のスタッフが撮影してそのまま投稿する仕組みなど、業種を問わず出てきます。その手前に必ず挟まるのが、ブラウザが表示する「カメラの使用を許可しますか」という確認です。

Chrome 151が2026年7月28日に公開され、この確認の出し方そのものを見直す新しいHTML要素、usermedia要素が使えるようになりました。JavaScriptから許可を求めるのではなく、ブラウザが仲立ちする部品を押してもらう形に変わります。

スクリプトから許可を求める方式のつまずき

これまでカメラやマイクを使うには、JavaScriptでgetUserMediaという命令を呼び、その瞬間にブラウザが許可の確認を出す形が標準でした。書き方としては素直ですが、実際の現場では困りごとがついて回ります。

ひとつは、確認が出るタイミングを利用者が予想しにくいことです。ページを開いた直後に何の脈絡もなく確認が出れば、多くの人はとりあえず拒否します。もうひとつは、拒否したあとの復帰が難しいことです。いったん拒否すると次からは確認すら出ず、ブラウザの設定画面を自力で開いて権限を戻す必要があります。制作側からは、その設定画面への案内文を書き添えるくらいしか打つ手がありませんでした。

迷惑な確認を減らすため、ブラウザ側が自動的に確認を抑え込む挙動も広がっています。まっとうに作ったページが、その網に引っかかって何も起きないという事故も起こり得ます。

ボタンを包むだけの書き方

usermedia要素は、押してもらうボタンをこの要素で包むだけで使えます。中に置いたボタンの見た目はこれまでどおり自由に整えられ、押されたあとの段取りをブラウザが引き受けます。

結果の受け取りは、要素が発火する3種類の出来事を見張る形です。許可されたときのstream、失敗したときのerror、利用者が確認を閉じたときのcancelの3つで、映像や音声の本体はstreamから受け取ります。解像度やエコー除去といった希望は、押される前にsetConstraintsで指定しておきます。従来の書き方で必要だった成功と失敗の分岐や状態管理のコードは、かなり減らせます。

目に見えて変わるのは、確認が出る条件です。従来はスクリプトの都合で確認を出せましたが、この要素ではブラウザが用意した部品が実際に押されるまで確認は出ません。裏を返せば、勝手なタイミングで確認を出す作りが成立しなくなるということでもあり、利用者側から見た予測しやすさは上がります。

拒否されたあとに戻ってこられるかどうか

この要素の効き目がはっきり出ているのが、一度拒否されたあとの復帰です。Chromeの開発者向け情報によると、試験導入に参加したCiscoの計測では、従来の方式で復帰できた人がおよそ1割だったのに対し、新しい要素では6割を超えたとされています。Zoomでは撮影や録音の失敗が約47パーセント減り、Google Meetでは「マイクが動かない」という申告が約17パーセント減ったという数字も挙がっています。

理由は単純で、利用者が自分でボタンを押したという事実をブラウザが確実に把握できるからです。押した本人の意思がはっきりしているぶん、ブラウザは自動的な抑制を回さずに済み、拒否済みの状態からその場で復帰させる専用の流れを出せます。設定画面まで手順を案内しなくてよくなるのは、問い合わせ対応の手間という面でも小さくありません。

今すぐ全面的に置き換えるものではない

現時点で動くのはChrome 151以降で、他のブラウザはこれからです。仕様はW3Cのメディアキャプチャ拡張仕様に載っており、将来はカメラ用、マイク用といった用途別の要素も検討されています。

対応しているかどうかは、HTMLUserMediaElementという名前がブラウザ側に存在するかで判定できます。対応していないブラウザでは要素の中に書いた内容がそのまま表示されるので、中に従来のgetUserMediaを呼ぶボタンを置いておけば、ひとつの記述で両方の環境をまかなえます。新規に組むならこの入れ子の形から始めておくと、対応ブラウザが増えたときに書き直さずに済みます。

カメラやマイクを扱うページは、動くかどうかが問い合わせ件数に直結します。実装の難しさよりも、拒否したまま戻れなくなった利用者をどう救うかが実際の課題だった現場は多いはずで、そこにブラウザ側から手が入ったという意味で、頭の片隅に置いておく価値のある変化です。

JavaScriptで組んでいた部品がHTML側に移りつつある

つくば市のホームページ制作会社

ウェブ制作の現場で長く続いてきた作業のひとつが、ブラウザに足りない機能をJavaScriptで補うことでした。開閉するパネル、画面全体に出るダイアログ、装飾された選択メニュー。本来はただの部品なのに、ライブラリを読み込み、初期化のコードを書き、キーボード操作や読み上げの面倒まで見て、数年後の保守で頭を抱える。制作に関わっていれば、たいてい心当たりのある流れだと思います。

ここ数年、その前提が少しずつ変わってきています。7月28日に安定版が出たChromeの最新版の変更点を眺めると、方向がかなりはっきり見えます。カメラとマイクの扱い、Shadow DOMの組み立て、画面切り替えの計測。どれもこれまではJavaScriptの領分だったものが、HTMLの要素や属性、あるいはブラウザ標準の計測項目として整理されつつあります。今回はこの流れを、直近のブラウザ各社の動きと並べて眺めてみます。

カメラとマイクの入口がHTMLの要素になる

目を引くのは usermedia という新しい要素です。ブラウザが用意した操作部品として画面に置かれ、そこからカメラやマイクの利用が始まります。Chromeの開発者向けブログによると、利用者の意図をはっきりさせた上で許可を求め、映像や音声のストリームを受け取るところまでを、この要素が受け持つとされています。

従来はJavaScriptから取得用の関数を呼ぶと、いきなりブラウザの許可ダイアログが出る作りでした。押した覚えのないタイミングで「カメラを使いますか」と聞かれれば、多くの人はまず拒否します。そして一度拒否されると、設定から手で戻してもらうしかない。許可の取りこぼしは技術の問題ではなく導線の設計の問題で、その導線をブラウザ側に寄せるという判断は理にかなっています。

使いどころとしては、オンライン相談の受付ページ、採用ページで応募者に短い動画を録ってもらう仕組み、業務用の写真アップロードなどが考えられます。ただし現時点ではChromeだけの機能なので、これ抜きでも成立する作りにした上で、対応ブラウザでは体験が良くなる、という積み方が現実的です。

影の中の差し込み口も属性で書ける

同じ版では、template 要素に shadowrootslotassignment という属性が加わりました。Shadow DOMの中で、どの中身をどの差し込み口に入れるかを手動で割り当てる指定です。これまでは JavaScript から Shadow DOM を作るときにオプションで渡すしかなく、スクリプトが動くまで組み立てが完了しませんでした。

地味な変更に見えますが、意味は小さくありません。サーバー側が吐き出したHTMLだけで部品が完成するなら、最初の表示が崩れて後から整うという、あの落ち着かない一瞬が減ります。PHPでHTMLを組み立てるWordPressのような環境とも相性が良く、ブロックやテーマの作り込みで恩恵を受ける場面はありそうです。

見た目の調整からスクリプトが抜けていく

この半年ほどの各ブラウザの更新を並べると、同じ傾向がもっと広い範囲で起きていることが分かります。グリッドやフレックスの隙間に線を引く指定、箱の幅に合わせて文字の大きさを自動調整する指定、入力欄が中身の量に応じて伸縮する指定。最後のものはFirefoxが対応したことで、主要なブラウザエンジンすべてで使える状態になりました。矢印キーでの移動先をまとめて宣言できる属性も加わっています。

どれも、かつては手で書いていた処理です。文字幅を測って収まるまで縮めるコード、入力のたびに高さを再計算するコード、キーボード操作を自前で組み立てるコード。案件ごとにコピーして、少しずつ挙動が違う状態で増えていく類のものでした。それが数行のCSSや属性ひとつに置き換わるなら、書く量が減るだけでなく、動作の説明もしやすくなります。

制作者側の実利は、たぶん「新しい表現ができる」よりも「消せるコードが増える」ところにあります。納品後に触る人が読む量が減るのは、それ自体が品質です。

足並みがそろわない例もある

とはいえ、宣言的に書ける方向へ一直線に進んでいるわけではありません。分かりやすい例が、選択メニューの見た目を自由に整えられる仕組みです。Chromeでは去年のうちに安定版に入り、Safariは開発者向けの先行版で確認できる段階、Firefoxは試験版でフラグを立てて試す段階。MDNの解説でも、広く使われるブラウザの一部で動かないため安定して使える状態には達していない、という位置づけになっています。

ブラウザごとの歩幅の違いも、この7月にそのまま表れました。Chromeが新しい要素を入れた前日にはSafariの更新版が出ていますが、こちらはWebAssemblyまわりの小さな追加と、CSSや通信の不具合修正が中心です。文字の大きさの単位が拡大表示でずれる問題や、要素の配置指定が意図した位置に戻らない問題が直されています。新機能を並べる回もあれば、土台を固める回もある、というだけの話ですが、対応状況を「だいたい揃った」で済ませられない理由ではあります。

ブラウザ間の差を埋める取り組みとしては、Apple、Google、Igalia、Microsoft、Mozillaが共同で進めるInterop(相互運用性)のプロジェクトがあります。今年の重点領域は二十近く挙げられており、テストの通過率がダッシュボードで公開されているので、気になる機能の足並みを自分で確かめられます。営業資料に「最新の書き方に対応」と書く前に、こういう一次情報で裏を取る癖をつけておくと安全です。

体感速度の測り方も追いついてきた

もうひとつ、Chromeの最新版には計測まわりの追加があります。画面を読み込み直さずに表示を切り替える作りで、その切り替えを一区切りとして扱い、操作をきっかけに描かれた主要な内容が出るまでを測れるようになりました。

これは長く空いていた穴です。表示速度の指標は最初の一画面に強い一方、その後の画面遷移は測りにくく、「最初は速いのに使い始めると重い」という感想を数字で示せませんでした。予約フォーム、商品の絞り込み、地図の切り替えなど、中小企業のサイトでも読み込みを挟まず描き替える作りは増えています。改善の順番を決めるときに、体感に近い数字が手元にあるかどうかは大きな差になります。

もっとも、指標が増えれば追う手間も増えます。全部を見るのではなく、その画面で一番使われる操作をひとつ決めて、その前後だけ測るくらいでも十分に判断材料になります。

どこから取り入れるか

実務での見極めは、三つに分けて考えると迷いません。まず、主要なブラウザすべてで使える状態になったものは、素直に置き換えの候補にできます。入力欄の伸縮や要素同士を結びつける配置指定はこの段階です。次に、特定のブラウザだけで動くものは、無くても成立する上乗せとして扱う。カメラの新しい要素は今のところここに入ります。最後に、置き換えによって読み込んでいるライブラリやプラグインを一つ減らせるかどうかを見る。減らせるなら優先度は上がります。

この最後の観点が、長く運用するサイトでは一番効きます。数年前に選んだライブラリの更新が止まり、依存関係の警告だけが増えていくという話は珍しくありません。ブラウザに入った機能は簡単には消えないので、同じことができるなら標準の側に寄せておくほうが、後々の手間は少なくて済みます。

新機能の一覧を追いかけるのは楽しい作業ですが、実利という意味では逆向きの棚卸しのほうが効くのかもしれません。いま抱えているJavaScriptのうち、どれがすでにHTMLやCSSで書けるようになっているのか。手元の案件をひとつ開いて、読み込んでいるファイルを上から見ていくだけでも、消せる候補はいくつか見つかるはずです。

画像と同じ書き方で動画や音声も遅延読み込みできるHTML属性

つくば市のホームページ制作会社

画像の遅延読み込みでおなじみの loading=”lazy” が、video要素と audio要素でも使えるようになった。要素にこの属性を書き足すだけで、ページを開いた瞬間ではなく、その要素が画面に近づいたタイミングまで読み込みを後回しにできる。Chrome 148 で標準の挙動として全プラットフォームに行き渡り、特別な準備なしにそのまま動くようになっている。

面白いのは、後回しになる対象が動画本体のデータだけではない点だ。ポスター画像やメタデータの取得、それに autoplay の再生開始まで、要素が表示領域に入る手前まで待つ。これまでも preload=”none” やメタデータのみの指定で動画データの通信量はある程度抑えられたが、ポスター画像の取得まで含めて遅らせられるのは新しい。書き方は img要素や iframe要素の loading=”lazy” とまったく同じで、WHATWG の仕様に沿った標準の動きとして扱われる。特別なライブラリを読み込む必要はなく、既存のマークアップに一語足すだけで完結する手軽さがある。

実務でうれしいのは、専用の JavaScript を用意しなくてよくなることだ。従来はページ下部に並ぶ動画を遅らせるために、IntersectionObserver で表示位置を監視する自前のコードを書くのが定番だった。その方法だと、スクリプトが動くタイミングとブラウザ内部の読み込みスケジュールが微妙にずれて、境目でのちらつきや二重の読み込みに気を配る必要がある。属性ひとつに任せれば、こうした細かな調整から解放される。preload 属性の指定自体はこれまでどおり効くが、その判断が要素の表示まで遅れる、と理解しておけばよい。

ひとつ気を配りたいのは、レイアウトのずれだ。メタデータの取得が後回しになると、動画の縦横比が分かるのも遅れるため、読み込みの瞬間に高さが変わって周囲がガタつくことがある。video要素に width と height を指定しておくか、CSS の aspect-ratio で先に場所を確保しておけば、この飛び跳ねは避けられる。遅延読み込みと表示の安定は、セットで考えると気持ちよく収まる。

使いどころも選びたい。ページを開いてすぐ目に入る主役の動画に付けると、かえって表示が一拍遅れて見えることがある。向いているのは、スクロールした先に置いた紹介動画や、複数の音声サンプルを並べたページなど、最初の画面には映らない要素だ。折り返しより下にあるものを選んで付ける、という素直な使い分けでよい。

対応はまず Chrome 系が先行し、ほかのブラウザは順次追随していく段階にある。とはいえ非対応のブラウザでは属性が無視されて従来どおり読み込まれるだけなので、progressive enhancement として今から書き足しておいて困ることはない。動画を多く載せる商品紹介ページやサービスサイトで、最初の表示を軽くするための一行として頭の隅に置いておきたい。細かな挙動はweb.devの解説にまとまっている。

1-2 基本的なホームページ制作:HTML/CSSの基礎

1-2 基本的なホームページ制作:HTML/CSSの基礎

1-2 HTML/CSSの基礎

はじめに
前章では、ホームページの基本構造とその主要な構成要素について学びました。この章では、HTMLとCSSの基本に焦点を当て、ウェブページ制作の基礎をさらに深めていきます。HTMLでコンテンツの構造を定義し、CSSでその見た目を装飾することにより、効果的なウェブページを制作するための基礎技術を身につけましょう。

1. HTMLの深掘り

HTMLは、ウェブページの基礎を築くための言語です。コンテンツを構造化するために使用され、テキスト、画像、リンクなどの基本的なウェブコンテンツをブラウザに表示させます。

HTMLタグの役割

HTMLでは、様々なタグがコンテンツの意味を定義します。例えば、<p>は段落を、<h1>から<h6>は見出しを、<a>はリンクを表します。これらのタグを使用して文書の構造を明確にし、コンテンツの意味をブラウザに伝えることができます。

セマンティックHTML

セマンティックHTMLは、コンテンツの意味をより正確に表現するために特定のタグを使用することを指します。例えば、<article><section><nav><aside>などのタグは、ウェブページ内の特定のコンテンツの役割を明確にします。これにより、検索エンジンの最適化(SEO)やアクセシビリティの向上に役立ちます。

2. CSSの探求

CSSは、ウェブページのスタイルとレイアウトを定義するために使用されます。HTML構造に美しさと視覚的魅力を加えることで、ユーザー体験を向上させることができます。
スタイリングの基礎
CSSでは、セレクタを使用して特定のHTML要素を指定し、それらにスタイルを適用します。色、フォント、マージン、パディング、ボーダーなど、多様なプロパティを通じて、ページの視覚的要素を細かく調整できます。
レイアウト技術
近年のCSSは、フレキシブルボックス(Flexbox)やグリッド(Grid)といった強力なレイアウト技術を提供しています。これらの技術を使用することで、レスポンシブデザインを含む複雑なレイアウトも容易に実現できます。

3. 実践的な例

HTMLとCSSを組み合わせることで、様々なデザインと機能を持つウェブページを制作できます。例えば、以下は簡単なHTMLとCSSを使用したウェブページの例です。

<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
h1 { color: #333; }
p { color: #666; }
</style>
<title>HTML/CSSの基礎</title>
</head>
<body>

<h1>ウェブページのタイトル</h1>
<p>これは段落です。HTMLとCSSを使ってウェブページをデザインしています。</p>

</body>
</html>

4. まとめ

HTMLとCSSは、ウェブページ制作の基礎を形成します。HTMLでコンテンツの構造を定義し、CSSでそれを美しく装飾することで、ユーザーにとって魅力的なウェブページを制作することができます。この章で紹介した基本的な概念と技術を理解し、応用することで、より高度なウェブデザインに挑戦する準備が整います。