使闪光警报可访问

By simon at 2018-02-27 • 0人收藏 • 49人看过

我正在尝试使用闪存消息提供可访问的警报 保存在我的应用程序使用role="alert".在一些页面上出现并读出 使用屏幕阅读器就好,但其他时候屏幕阅读器启动 阅读页面的标题并削减了约一半的警报 信息。例如,我的警报说“记录已成功保存”和 有时候屏幕阅读器将完全阅读,但其他时间 首先插入页面标题并切断“Re的开头绳 成功保存“”页面标题成功保存“

<% unless flash.empty? %>
<div id="flash-container" role="alert" style='display:none;'>
<% flash.each do |key, message| %>
  <div class="alert alert-<%= get_flash_class(key) %> fade in" id="flash">
    <button class="close" data-dismiss="alert">
    </button>
    <span class='message'><%= message %></span>
  </div>
<% end %>

1 个回复 | 最后更新于 2018-02-27
2018-02-27   #1

很多关于你的问题的混淆。 第1点你是什么意思

使闪光警报可访问 第2点为什么使用<% unless flash.empty? %>不需要使用,因为while flash是空的,那么他不会访问这个块,我会建议你删除此更简单。 第3点为什么使用style='display:none;'至flash-container格 第4点你的意思是get_flash_class(key)方法,因为你可以使用 这个键只需简单地添加ruby基本语法,例如<%="#{key}" %>这就是它的意思 想

<div class="alert alert-<%="#{key}" %> fade in" id="flash">
对于消息的切断,它非常有线,我相信控制器正在制作 像往常一样,Rails说闪存是错的提供了一种途径 临时原始类型 [here](http://api.rubyonrails.org/classes/ActionDispatch/Flash.html)like
flash[:success] = 'Model was successfully created.'
现在你的Flash消息代码会
<% flash.each do |key, message| %>
    <div class="alert alert-<%="#{key}" %> fade in" id="flash">
        <button class="close" data-dismiss="alert">&times;</button>
        <span class='message'><%= message %></span>
    </div>
<% end %>
如果你仍然需要get_flash_class方法,那么
flash[:success] = 'Model was successfully created.'
65助手会见畚 看起来像这样
def get_flash_class(flash_key)
    case flash_key
        when :success
            "alert-success"
        when :error
            "alert-error"
        when :alert
            "alert-block"
        when :notice
            "alert-info"
        else
            flash_type.to_s
    end
end
你可以照常拨打
flash[:success] = 'Model was successfully created.'
91 希望能帮助到你

登录后方可回帖

Loading...