Many pages had this tag, but many other didn't, which made navigation inconsistent for people using screen readers. Note that there are slight changes in two pages: * The homepage now includes the banner and the content of the `shared/header` element inside the <main> tag * The budgets index now includes the banner inside the <main> tag I see both potential advantages and disadvantages of this approach, since banners aren't necessarily related to the main content of a page but on the other hand they aren't the same across pages and people using screen readers might accidentally skip them if they jump to the <main> tag. So I'm choosing the option that is easier to implement. Note we're adding a `public-content` class to the <main> element in the application layout. This might be redundat because the element could already be accessed through the `.public main` selector, but this is consistent with the `admin-content` class used in the admin section, and without it the <main> element would sometimes have an empty class attribute and we'd have to use `if content_for?(:main_class)` or `tag.main` which IMHO makes the code less consistent. The Capybara::DSL monkey-patch is only done on the `visit` method because it's the only reliable one. Other methods like `click_link` generate AJAX requests, so `expect(page).to have_css "main", count: 1` might be executed before the AJAX request is finished, meaning it wouldn't properly test anything.
52 lines
2.0 KiB
Plaintext
52 lines
2.0 KiB
Plaintext
<div class="row proposals-summary">
|
|
<div id="proposals" class="proposals-list small-12 medium-9 column">
|
|
<%= back_link_to %>
|
|
|
|
<% @proposals.each do |group_name, proposals| %>
|
|
<div id="<%= group_name.parameterize %>">
|
|
<h2 class="margin-top"><%= group_name %></h2>
|
|
|
|
<% proposals[0..2].each do |proposal| %>
|
|
<div class="proposal clear">
|
|
<div class="panel">
|
|
<div class="row">
|
|
<div class="small-12 medium-9 column">
|
|
<div class="proposal-contenta">
|
|
<h3><%= link_to proposal.title, namespaced_proposal_path(proposal) %></h3>
|
|
|
|
<p class="proposal-info">
|
|
<% if proposal.author.hidden? || proposal.author.erased? %>
|
|
<span class="author"><%= t("proposals.show.author_deleted") %></span>
|
|
<% else %>
|
|
<span class="author"><%= proposal.author.name %></span>
|
|
<% if proposal.author.display_official_position_badge? %>
|
|
<span class="label round level-<%= proposal.author.official_level %>">
|
|
<%= proposal.author.official_position %>
|
|
</span>
|
|
<% end %>
|
|
<% end %>
|
|
</p>
|
|
|
|
<div class="proposal-description">
|
|
<p><%= proposal.summary %></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
|
|
<div class="small-12 medium-3 column">
|
|
<aside class="sidebar">
|
|
<%= link_to t("proposals.index.start_proposal"), new_proposal_path, class: "button radius expand" %>
|
|
<%= render "shared/tag_cloud", taggable: "Proposal" %>
|
|
<%= render "categories" %>
|
|
<%= render Proposals::GeozonesComponent.new %>
|
|
</aside>
|
|
</div>
|
|
</div>
|