― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - 動的に生成されたラジオボタンフォーカスが移動しない
作成者 メッセージ
  記事の件名:  Re: 動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
なるほど、未チェックのラジオボタンはグループの最初のボタンに移動する仕様、とのこと。
了解しました。

クローン前後でname属性値を変えてあげれば、フォーカスが移動できるか実験してみましたところ、希望通りに動きましたので、最悪そういった方法もとれるなということで納得致します。

色々動いて下さり、ありがとうございました。
投稿記事 Posted: 2024年4月22日(月) 23:47
  記事の件名:  Re: 動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
tsuchiyama さん
クローンして別の場所に追加したラジオボタンにタブキーでフォーカス移動できないのは、意図した挙動である旨の回答がありました。

name属性が同じであるため(場所は離れていますが)同じグループとなり、チェックされていないラジオボタンはグループの最初のボタンに移動する仕様です。
同じグループなので矢印キーで上の2つと下の2つの4つのボタン間を移動できます。

テンプレートにする要素を同じドキュメント内に置いておいて、それをまるっとクローンして使うのはよろしく無いやり方のように思います。
JavaScript側で生成するようにしてはどうでしょうか。

ちなみに、ChromeやEdgeでは上と下のラジオボタンをタブで移動できました。
この挙動がいいのかどうかは私にはわかりません。
投稿記事 Posted: 2024年4月22日(月) 18:36
  記事の件名:  Re: 動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
別バグで出しても重複になると思うので、Bug 1892529 に別のケースとして追加報告させていただきました。
テストHTMLは非表示とか無くしてクローンだけのシンプル(jQuery使わない)なものにしておきました。

なお、JavaScriptで要素を新規に追加するケースもやってみましたが、こちらは問題なかったです。
したがいまして、動的に生成ではなくクローンした場合ということになるかと思います。
投稿記事 Posted: 2024年4月21日(日) 22:26
  記事の件名:  Re: 動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
ご提示のテストコードを試すと、タブキーによるフォーカス移動は以下の通りでした。

  • Firefox 124.0.2:「Search」→「A1」→「A2」→「B1」→「B2」
  • Firefox 125.0.1:「Search」→「B1」→「B2」
  • Chrome 124.0.6367.61:「Search」→「A1」→「B1」→「B2」
  • Edge 124.0.2478.51:「Search」→「A1」→「B1」→「B2」

Firefoxでの挙動の変化ですが、開発版(Nightly)の方で変化したビルドを調べたところ下記の変更によるものであることがわかりました。

Bug 1267488 Radio button group tabbing does not conform to WAI-ARIA design pattern when no button is checked

チェックされていないラジオボタンがチェックボックスと同様にグループ内でタブで移動する(Firefox 124.0.2)のは WAI-ARIAのRadio Group Patternに沿っていないため、最初のラジオボタンにだけ移動する(Chrome、Edge)挙動に修正しようとしたわけです。
しかし、テストコードにおいては最初のラジオボタンもフォーカスが当たりませんね。

この Bug 1267488 によるリグレッションだとして下記のバグが起票されているのを見つけました。

Bug 1892529 Unable to focus radio button with Tab key if the first radio button is hidden,

日本時間だと今日の06:42なので、このトピックを見ての起票なのかも。
ただ、Bug 1892529 は非表示にしていた場合なので、(同じ原因ならばよいのですが)ここのケースも追加情報として上げたほうがいいのかもしれません。
投稿記事 Posted: 2024年4月20日(土) 23:16
  記事の件名:  Re: 動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
いろいろ試してみて、ラジオボタンがデフォルトでcheckedになっている場合は、クローンされたものでもフォーカスが移動するようです。
それでは予め選択されていることを見逃すといったことがありえるので、あまり芳しくない感じです。
もしこれが仕様なら、Ver.124以前に戻して欲しい。
投稿記事 Posted: 2024年4月20日(土) 07:51
  記事の件名:  Re: 動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
tsuchiyama さん、テストコードありがとうございます。
後で試してみますね。
投稿記事 Posted: 2024年4月19日(金) 20:43
  記事の件名:  Re: 動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
下記のようなコードでお試しいただけると思います。

<!DOCTYPE html>
<html lang="ja">

<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('#searchresulttemplate').hide();
});

$(document).on('click', '#search', function(){
$('#searchresult').html('');
$('#searchresulttemplate .elements')
.clone()
.appendTo('#searchresult')
.show();
});
</script>
<title>Test</title>
</head>

<body>
<article>
<section>
<p>ボタンをクリックしたときにフォームテンプレートを複製するスクリプトでは、Tabキーを押しても複製されたラジオボタンにフォーカスが移動しません。<br>
In a script that clones a form template when a button is clicked, pressing the tab key does not move the focus to the cloned radio button.</p>
</section>
<section>
<h1>Push Search Button</h1>
</section>
<section>
<div class="content">
<button id="search" tabindex="10000">Search</button>
<div id="searchresulttemplate">
<div class="elements">
<h2>Serach Result</h2>
<div class="detailinfo">
<p>
<input type="radio" name="sampler" value="A1" tabindex="10000"><label>A1</label>&nbsp;
<input type="radio" name="sampler" value="A2" tabindex="10000"><label>A2</label>
</p>
<p>
<input type="checkbox" name="samplec" value="B1" tabindex="10000"><label>B1</label>&nbsp;
<input type="checkbox" name="samplec" value="B2" tabindex="10000"><label>B2</label>
</p>
<p><input type="text" name="samplet" value="" class="nonent issuedate" tabindex="10000"></p>
</dl>
</div>
</div>
</div>
<div id="searchresult"></div>
</div>
</section>
</article>
</body>
</html>
投稿記事 Posted: 2024年4月19日(金) 13:39
  記事の件名:  Re: 動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
tsuchiyama さん、EarlgreyTea と申します。

tsuchiyama さんが書きました:
Firefox 124.0.2から125.0.1にアップグレードしたところ、動的に生成されたラジオボタンにタブインデックスが設定されているにもかかわらず、他のinput要素からTABキーでのフォーカス移動がなされなくなってしまいました。

試したいので、動的にラジオボタンを表示するサイト(のURL)を教えてください。
投稿記事 Posted: 2024年4月17日(水) 21:00
  記事の件名:  動的に生成されたラジオボタンフォーカスが移動しない  引用付きで返信する
Firefox 124.0.2から125.0.1にアップグレードしたところ、動的に生成されたラジオボタンにタブインデックスが設定されているにもかかわらず、他のinput要素からTABキーでのフォーカス移動がなされなくなってしまいました。
何か設定を変更することで、修正することができるのでしょうか?

なお、動的に生成されたチェックボックスには問題なくフォーカスが移動します。
投稿記事 Posted: 2024年4月17日(水) 17:16

All times are UTC + 9 hours


ページ移動:  
cron
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean