divでjQueryオートコンプリートを使用していますが、jqueryによってこの余分なスパンが自動的に追加されています
"<span role="status" aria-live="polite" class="ui-helper-hidden-accessible">search test</span>"
このスパンが作成されないようにするにはどうすればよいですか?
divでjQueryオートコンプリートを使用していますが、jqueryによってこの余分なスパンが自動的に追加されています
"<span role="status" aria-live="polite" class="ui-helper-hidden-accessible">search test</span>"
このスパンが作成されないようにするにはどうすればよいですか?
CSSルールを追加して解決しました:
.ui-helper-hidden-accessible { display: none; }
これはアクセシビリティ上の理由によるもので、目の不自由な人がどれだけの結果が見つかったかを「読む」ことができます。本当にこれを削除したい場合は、ソース コードを変更できます。
this.liveRegion = $( "<span>", {
role: "status",
"aria-live": "polite"
})
.addClass( "ui-helper-hidden-accessible" )
.insertAfter( this.element );
しかし、それはお勧めできません。
n 番目の子セレクターを使用してレイアウトに CSS フレックス ボックスを使用していたため、このスパンによって列のレイアウトが歪んでいました。
display: none
またはposition: absolute; top: -999999
私の問題を解決しません。要素を DOM から完全に削除する必要があったため、次のcreate イベントハンドラーを作成しました。
create: function (e)
{
e.target.parentElement.removeChild(e.target.parentElement.querySelector(".ui-helper-hidden-accessible"));
}
.css ファイルを追加するとうまくいきました (もちろん、すべてのスパン要素を削除することもできましたが、それは良い解決策ではありません):
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" />
本当にこれを削除すべきではありません (視覚障害者専用の Web ページを閲覧したいのですが、コンテンツにアクセスできませんか?)...
Web サイトを ADA 準拠にするのは簡単ではありません。このスパンは、すべてのもののほんの一部です。
display none などで要素を非表示にすることは、ADA に関する悪い習慣です。そのため、Facebook のようなページでは、要素を画面外のどこかにインデントして非表示にしています。
display:none vs visibility:hidden vs text-indent:9999 スクリーンリーダーはそれぞれでどのように動作しますか?
ADA 関連のものについては、ここから始めることができます: http://www.techrepublic.com/blog/web-designer/creating-an-ada-compliant-website/
この場合、高さを強制的に 0 にするのが役立つかもしれません...
これは完全に機能します:
$(document).ready(function(){ $("span").remove(); });