2

この機能を必要とする他の誰かのインスタンスを他の場所で 1 つも見つけることができなかったという事実を考慮すると、これは壁から離れた要件である可能性があります。それは言った:

私が取り組んでいる Web サイトでは、フォーム検証のために数十の異なるバリデータ コントロール (RequiredFieldValidaotrs から CustomValidators までのすべて) を使用しています。セクション 508 への準拠の一環として、CSS を無効にするユーザーをサポートする必要があります。これは、バリデーターがエラー テキストをページにレンダリングし、CSS 表示プロパティを使用して非表示にするため、問題があります。CSS を無効にすると、すべてのエラー メッセージが表示され、スクリーン リーダーで読み上げられます。

ラベルとポストバックを使用してラベルを表示および非表示にする以外に、CSS を無効にして ASP.Net バリデータ コントロールを使用する既知の方法はありますか?

4

1 に答える 1

0

Display="None"FieldValidator コントロールの属性とValidationSummaryタグを使用して、メッセージを含めます。

<form id="form1" runat="server">
        <asp:TextBox runat="server" ID="TextBox1"  /> <br />
        <asp:TextBox runat="server" ID="TextBox2"  /> <br />
        <asp:Button runat="server" Text="Go"  />

        <div class="messages">
            <asp:ValidationSummary id="summery1"  runat="server"/>
        </div>

        <div>
        <asp:Panel ID="Panel1" runat="server" >
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1"  runat="server" 
                    ErrorMessage="Required Field Validator1 empty" ControlToValidate="TextBox1" Display="None" />
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2"  runat="server" 
                    ErrorMessage="Required Field Validator2 empty" ControlToValidate="TextBox2" Display="None" />
        </asp:Panel>
        </div>
    </form>

ただし....(常に問題があります)...この方法では、検証メッセージ自体が JavaScript のみに格納されます。Javascriptが無効になっていると機能しないことを意味します。(JS に依存する) WebForms で作業しているので、これは大きな問題ではないと思いますが、言及する価値があると思います。

記録のために、アクセシビリティに関する懸念は、ほとんどがくだらないことです。実際に視覚障害のあるプログラマー (全盲) と一緒に仕事をするまでは、アクセシビリティについて知っていたと思います。次に、JS が問題なく動作すること (新しいコンテンツを探すことを知っていると仮定して...) と、探しているものが見つかるまで、リンクからリンクへとページをスキップすることを学びました。また、テーブルベースのレイアウトでは、1 秒も遅くなりませんでした。数年間CSSについて耐え難いほど説教された後、飲み込むのが難しい薬だった少年....

于 2013-03-05T18:38:38.513 に答える