diff --git a/app/views/admin/application/_accessibility.html.erb b/app/views/admin/application/_accessibility.html.erb
index 0f170d955046b476134031b1d82b33ea8be77fe7..4bd2df2f8e6f5721c02fcfe6b8caff4021d5bf7b 100644
--- a/app/views/admin/application/_accessibility.html.erb
+++ b/app/views/admin/application/_accessibility.html.erb
@@ -8,40 +8,40 @@ color = about.accessible? ? 'text-success' : 'text-danger'
       <%= t('accessibility.label') %>
     </h2>
   </div>
-  <% if about.accessibility_errors.any? || about.accessibility_warnings.any? %>
-    <div class="card-body">
-      <% if about.accessibility_errors.any? %>
-        <h2 class="h5 text-danger">
-          <%= t 'accessibility.errors', count: about.accessibility_errors.count %>
-        </h2>
-        <ol class="list-unstyled">
-          <% about.accessibility_errors.each do |key| %>
-            <li>
-              <hr>
-              <h3 class="h5 text-danger"><%= t "#{key}.title" %></h3>
-              <p>
-                <%= t "#{key}.text_html" %>
-              </p>
-            </li>
-          <% end %>
-        </ol>
-      <% end %>
-      <% if about.accessibility_warnings.any? %>
-        <h2 class="h5">
-          <%= t 'accessibility.warnings', count: about.accessibility_warnings.count %>
-        </h2>
-        <ul class="list-unstyled">
-          <% about.accessibility_warnings.each do |key| %>
+  <div class="card-body">
+    <% if about.accessibility_errors.any? %>
+      <h2 class="h5 text-danger">
+        <%= t 'accessibility.errors', count: about.accessibility_errors.count %>
+      </h2>
+      <ol class="list-unstyled">
+        <% about.accessibility_errors.each do |key| %>
           <li>
             <hr>
-            <h3 class="h5"><%= t "#{key}.title" %></h3>
+            <h3 class="h5 text-danger"><%= t "#{key}.title" %></h3>
             <p>
               <%= t "#{key}.text_html" %>
             </p>
           </li>
-          <% end %>
-        </ul>
-      <% end %>
-    </div>
-  <% end %>
+        <% end %>
+      </ol>
+    <% else %>
+      <p><%= t 'accessibility.errors', count: 0 %></p>
+    <% end %>
+    <% if about.accessibility_warnings.any? %>
+      <h2 class="h5">
+        <%= t 'accessibility.warnings', count: about.accessibility_warnings.count %>
+      </h2>
+      <ul class="list-unstyled">
+        <% about.accessibility_warnings.each do |key| %>
+        <li>
+          <hr>
+          <h3 class="h5"><%= t "#{key}.title" %></h3>
+          <p>
+            <%= t "#{key}.text_html" %>
+          </p>
+        </li>
+        <% end %>
+      </ul>
+    <% end %>
+  </div>
 </div>
diff --git a/app/views/admin/communication/blocks/components/array/_preview.html.erb b/app/views/admin/communication/blocks/components/array/_preview.html.erb
index 83ba82a5675eb8de82ba266b80c91e5e44ddf1ab..9d061a81fa66af0b0997ab7d24c185bc878ff6ae 100644
--- a/app/views/admin/communication/blocks/components/array/_preview.html.erb
+++ b/app/views/admin/communication/blocks/components/array/_preview.html.erb
@@ -1,5 +1,5 @@
 <%
-array = JSON.parse value
+array = value.blank? ? [] : JSON.parse(value)
 %>
 <% array.each do |item| %>
   <td><%= item %></td>
diff --git a/app/views/admin/communication/blocks/edit.html.erb b/app/views/admin/communication/blocks/edit.html.erb
index a007cf52a41b00c4ffcbdc009a40797ededc1d12..dbd8da90171d87b28dae9a6f7ec110eefaea8967 100644
--- a/app/views/admin/communication/blocks/edit.html.erb
+++ b/app/views/admin/communication/blocks/edit.html.erb
@@ -8,14 +8,18 @@
     <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
 
     <div class="row">
-      <div class="col-xxl-4 col-md-6">
-        <%= f.input :title %>
+      <div class="col-xxl-9 col-lg-8">
+        <div class="row">
+          <div class="col-xxl-3 col-lg-6">
+            <%= f.input :title %>
+          </div>
+        </div>
+        <%= render "admin/communication/blocks/templates/#{@block.template_kind}/edit", f: f %>
       </div>
-      <div class="offset-xxl-4 col-xxl-4 col-md-6">
+      <div class="col-xxl-3 col-lg-4">
         <%= render 'admin/application/accessibility', about: @block %>
       </div>
     </div>
-    <%= render "admin/communication/blocks/templates/#{@block.template_kind}/edit", f: f %>
     <textarea name="communication_block[data]" rows="20" cols="200" class="d-none">
       {{ JSON.stringify(data) }}
     </textarea>
diff --git a/app/views/admin/communication/blocks/templates/call_to_action/_edit.html.erb b/app/views/admin/communication/blocks/templates/call_to_action/_edit.html.erb
index 3751871ce39aabd74454fbaa783e13766ffde592..387238c9b5a776d44db24a39848849ef0d55f2cb 100644
--- a/app/views/admin/communication/blocks/templates/call_to_action/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/call_to_action/_edit.html.erb
@@ -19,28 +19,33 @@
   </div>
 </div>
 
-<% element = @block.template.default_element %>
-<%= block_component_add_element t('.add_button') %>
-
-<div :list="data.elements" class="row">
-  <div v-for="(element, index) in data.elements">
-  <h3 class="h4"><%= t '.buttons' %></h3>
-  <div class="row mb-5">
-    <div class="col-lg-3">
-      <%= block_component_edit  :title, template: element %>
-      <a  class="btn btn-sm btn-danger"
-          v-on:click="data.elements.splice(data.elements.indexOf(element), 1)">
-          <i class="fas fa-times"></i> <%= t '.remove_button' %>
-      </a>
-    </div>
-    <div class="col-lg-5">
-      <%= block_component_edit :url, template: element %>
-    </div>
-    <div class="col-lg-4">
-      <label class="form-label">&nbsp;</label>
-      <div class="form-check">
-        <%= block_component_edit :target_blank, template: element %>
+<h3 class="h4"><%= t '.buttons' %></h3>
+<div v-for="(element, index) in data.elements" class="list-group">
+  <div class="list-group-item">
+    <div class="row">
+      <div class="col-11">
+        <div class="row">
+          <div class="col-xl-3">
+            <%= block_component_edit  :title, template: @element %>
+          </div>
+          <div class="col-xl-4">
+            <%= block_component_edit :url, template: @element %>
+          </div>
+          <div class="col-xl-4">
+            <label class="form-label d-none d-xl-block">&nbsp;</label>
+            <%= block_component_edit :target_blank, template: @element %>
+          </div>
+        </div>
+      </div>
+      <div class="col-1">
+        <a  class="btn btn-sm btn-danger float-end"
+            v-on:click="data.elements.splice(data.elements.indexOf(element), 1)">
+          <i class="fas fa-times"></i>
+        </a>
       </div>
     </div>
   </div>
 </div>
+<div v-if="data.elements.length < 3" class="mt-3">
+  <%= block_component_add_element t('.add_button') %>
+</div>
diff --git a/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb b/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb
index 0bb837bc29d683b5dc90c6402aeb866f0db06a9c..1e96e20facc5e0f75ebf28e7550ebb644ec66e05 100644
--- a/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb
@@ -1,28 +1,24 @@
 <div class="row mb-4">
-  <div class="col-xxl-4 col-md-6">
+  <div class="col-xl-6">
     <%= block_component_edit :text %>
     <%= block_component_edit :notes %>
   </div>
-  <div class="col-xxl-8 col-md-6">
-    <label class="form-label">&nbsp;</label>
-    <div class="card">
-      <div class="card-header">
-        <%= t "admin.communication.blocks.templates.chapter.edit.image.label" %>
+  <div class="col-xl-6">
+    <label class="form-label">
+      <%= t "admin.communication.blocks.templates.chapter.edit.image.label" %>
+    </label>
+
+    <div class="row">
+      <div class="col-xxl-6">
+        <%= block_component_edit :image %>
       </div>
-      <div class="card-body">
-        <div class="row">
-          <div class="col-xxl-6">
-            <%= block_component_edit :image %>
-          </div>
-          <div class="col-xxl-6">
-            <%= block_component_edit :alt,
-                  label: t('admin.communication.blocks.components.image.alt.label'),
-                  placeholder: t('admin.communication.blocks.components.image.alt.placeholder') %>
-            <%= block_component_edit :credit,
-                  label: t('admin.communication.blocks.components.image.credit.label'),
-                  placeholder: t('admin.communication.blocks.components.image.credit.placeholder') %>
-          </div>
-        </div>
+      <div class="col-xxl-6">
+        <%= block_component_edit :alt,
+              label: t('admin.communication.blocks.components.image.alt.label'),
+              placeholder: t('admin.communication.blocks.components.image.alt.placeholder') %>
+        <%= block_component_edit :credit,
+              label: t('admin.communication.blocks.components.image.credit.label'),
+              placeholder: t('admin.communication.blocks.components.image.credit.placeholder') %>
       </div>
     </div>
   </div>
diff --git a/app/views/admin/communication/blocks/templates/posts/_edit.html.erb b/app/views/admin/communication/blocks/templates/posts/_edit.html.erb
index d28a4d3d3ceaf66865c669853c898d7ceb4b1bb5..7aefa0c2a20950a81b724bcf211f6e9ebaa36abf 100644
--- a/app/views/admin/communication/blocks/templates/posts/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/posts/_edit.html.erb
@@ -1,35 +1,32 @@
 <% categories = collection_tree(@block.about&.website.categories) %>
 
-<div class="row mb-1">
-  <div class="col-md-6">
-    <%= block_component_edit :mode %>
-    <div v-if="data.mode === 'category' || data.mode === 'all'">
+<div class="mb-3">
+  <%= block_component_edit :mode %>
+  <div class="row">
+    <div v-if="data.mode === 'category' || data.mode === 'all'" class="col-lg-3">
       <%= block_component_edit :posts_quantity %>
     </div>
-    <div v-if="data.mode === 'category'">
+    <div v-if="data.mode === 'category'" class="col-lg-9">
       <%= block_component_edit :category_id %>
     </div>
   </div>
 </div>
 <div v-if="data.mode === 'selection'">
   <%= block_component_add_element t('.add_post') %>
-
-  <draggable :list="data.elements" class="row" handle=".dragHandle">
-    <div v-for="(element, index) in data.elements" class="col-xxl-3 col-lg-4">
-      <div class="card">
-        <div class="card-body">
-          <div class="mb-3">
-            <a  class="btn btn-sm btn-danger float-end"
-                v-on:click="data.elements.splice(data.elements.indexOf(element), 1)"
-                title="Delete">
-                <i class="fas fa-times"></i>
-            </a>
-            <a class="btn ps-0 pt-0 dragHandle" title="Drag and drop">
-              <i class="fa fa-bars handle"></i>
-            </a>
-          </div>
+  <draggable :list="data.elements" handle=".dragHandle" class="list-group">
+    <div v-for="(element, index) in data.elements" class="list-group-item">
+      <div class="d-flex">
+        <a class="btn ps-0 dragHandle" title="Drag and drop">
+          <i class="fa fa-bars handle"></i>
+        </a>
+        <div class="flex-fill">
           <%= block_component_edit :id, template: @element %>
         </div>
+        <a  class="btn btn-danger ms-3"
+            v-on:click="data.elements.splice(data.elements.indexOf(element), 1)"
+            title="Delete">
+            <i class="fas fa-times"></i>
+        </a>
       </div>
     </div>
   </draggable>
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index e25d924fc7aeefedfdec22bf1c548f8ef7dfd88f..b85e1e173e79fc6d804bfbb6791c60ab6c0ff1a6 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -2,6 +2,7 @@ fr:
   accessibility:
     label: Accessibilité
     errors:
+      zero: Félicitations, aucun problème d'accessibilité détecté !
       one: '1 erreur'
       other: '%{count} erreurs'
     warnings: