diff --git a/core/modules/simpletest/css/simpletest.module.css b/core/modules/simpletest/css/simpletest.module.css
index 71f7eea..4073c6f 100644
--- a/core/modules/simpletest/css/simpletest.module.css
+++ b/core/modules/simpletest/css/simpletest.module.css
@@ -35,7 +35,7 @@ table#simpletest-form-table tr.simpletest-group label {
   display: inline;
 }
 
-div.message > div.item-list {
+div.message > .item-list {
   font-weight: normal;
 }
 
diff --git a/core/modules/system/css/system.theme.css b/core/modules/system/css/system.theme.css
index 3e9180b..f8846e0 100644
--- a/core/modules/system/css/system.theme.css
+++ b/core/modules/system/css/system.theme.css
@@ -23,18 +23,18 @@ td.active {
 /**
  * Markup generated by theme_item_list().
  */
-.item-list .title {
-  font-weight: bold;
-}
-.item-list ul {
+.item-list {
   margin: 0 0 0.75em 0;
   padding: 0;
 }
-.item-list ul li {
+.item-list .title {
+  font-weight: bold;
+}
+.item-list li {
   margin: 0 0 0.25em 1.5em; /* LTR */
   padding: 0;
 }
-[dir="rtl"] .item-list ul li {
+[dir="rtl"] .item-list li {
   margin: 0 1.5em 0.25em 0;
 }
 
diff --git a/core/modules/system/src/Tests/Theme/FunctionsTest.php b/core/modules/system/src/Tests/Theme/FunctionsTest.php
index c8d068c..992cf6f 100644
--- a/core/modules/system/src/Tests/Theme/FunctionsTest.php
+++ b/core/modules/system/src/Tests/Theme/FunctionsTest.php
@@ -44,21 +44,21 @@ function testItemList() {
     // Verify that empty items produce the empty string.
     $variables = array();
     $variables['empty'] = 'No items found.';
-    $expected = '<div class="item-list">No items found.</div>';
+    $expected = 'No items found.';
     $this->assertThemeOutput('item_list', $variables, $expected, 'Empty %callback generates empty string.');
 
     // Verify that empty items produce the empty string with title.
     $variables = array();
     $variables['title'] = 'Some title';
     $variables['empty'] = 'No items found.';
-    $expected = '<div class="item-list"><h3>Some title</h3>No items found.</div>';
+    $expected = '<h3>Some title</h3>No items found.';
     $this->assertThemeOutput('item_list', $variables, $expected, 'Empty %callback generates empty string with title.');
 
     // Verify that title set to 0 is output.
     $variables = array();
     $variables['title'] = 0;
     $variables['empty'] = 'No items found.';
-    $expected = '<div class="item-list"><h3>0</h3>No items found.</div>';
+    $expected = '<h3>0</h3>No items found.';
     $this->assertThemeOutput('item_list', $variables, $expected, '%callback with title set to 0 generates a title.');
 
     // Verify that title set to a render array is output.
@@ -67,7 +67,7 @@ function testItemList() {
       '#markup' => '<span>Render array</span>',
     );
     $variables['empty'] = 'No items found.';
-    $expected = '<div class="item-list"><h3><span>Render array</span></h3>No items found.</div>';
+    $expected = '<h3><span>Render array</span></h3>No items found.';
     $this->assertThemeOutput('item_list', $variables, $expected, '%callback with title set to a render array generates a title.');
 
     // Verify that empty text is not displayed when there are list items.
@@ -75,7 +75,7 @@ function testItemList() {
     $variables['title'] = 'Some title';
     $variables['empty'] = 'No items found.';
     $variables['items'] = array('Un', 'Deux', 'Trois');
-    $expected = '<div class="item-list"><h3>Some title</h3><ul><li>Un</li><li>Deux</li><li>Trois</li></ul></div>';
+    $expected = '<h3>Some title</h3><ul class="item-list"><li>Un</li><li>Deux</li><li>Trois</li></ul>';
     $this->assertThemeOutput('item_list', $variables, $expected, '%callback does not print empty text when there are list items.');
 
     // Verify nested item lists.
@@ -136,32 +136,31 @@ function testItemList() {
       'f',
     );
 
-    $inner_b = '<div class="item-list"><ol id="blist">';
+    $inner_b = '<ol id="blist" class="item-list">';
     $inner_b .= '<li>ba</li>';
     $inner_b .= '<li class="item-class-bb">bb</li>';
-    $inner_b .= '</ol></div>';
+    $inner_b .= '</ol>';
 
-    $inner_cb = '<div class="item-list"><ul>';
+    $inner_cb = '<ul class="item-list">';
     $inner_cb .= '<li>cba</li>';
     $inner_cb .= '<li>cbb</li>';
-    $inner_cb .= '</ul></div>';
+    $inner_cb .= '</ul>';
 
-    $inner_c = '<div class="item-list"><ul id="clist">';
+    $inner_c = '<ul id="clist" class="item-list">';
     $inner_c .= '<li>ca</li>';
     $inner_c .= '<li class="item-class-cb">cb' . $inner_cb . '</li>';
     $inner_c .= '<li>cc</li>';
-    $inner_c .= '</ul></div>';
+    $inner_c .= '</ul>';
 
-    $expected = '<div class="item-list">';
-    $expected .= '<h3>Some title</h3>';
-    $expected .= '<ul id="parentlist">';
+    $expected = '<h3>Some title</h3>';
+    $expected .= '<ul id="parentlist" class="item-list">';
     $expected .= '<li>a</li>';
     $expected .= '<li id="item-id-b">b' . $inner_b . '</li>';
     $expected .= '<li>c' . $inner_c . '</li>';
     $expected .= '<li id="item-id-d">d</li>';
     $expected .= '<li id="item-id-e"></li>';
     $expected .= '<li>f</li>';
-    $expected .= '</ul></div>';
+    $expected .= '</ul>';
 
     $this->assertThemeOutput('item_list', $variables, $expected);
   }
diff --git a/core/modules/system/templates/item-list.html.twig b/core/modules/system/templates/item-list.html.twig
index bd71e7f..ec323b2 100644
--- a/core/modules/system/templates/item-list.html.twig
+++ b/core/modules/system/templates/item-list.html.twig
@@ -19,18 +19,16 @@
  */
 #}
 {%- if items or empty -%}
-  <div class="item-list">
-    {%- if title is not empty -%}
-      <h3>{{ title }}</h3>
-    {%- endif -%}
-    {%- if items -%}
-      <{{ list_type }}{{ attributes }}>
-        {%- for item in items -%}
-          <li{{ item.attributes }}>{{ item.value }}</li>
-        {%- endfor -%}
-      </{{ list_type }}>
-    {%- else -%}
-      {{- empty -}}
-    {%- endif -%}
-  </div>
+  {%- if title is not empty -%}
+    <h3>{{ title }}</h3>
+  {%- endif -%}
+  {%- if items -%}
+    <{{ list_type }}{{ attributes.addClass('item-list') }}>
+      {%- for item in items -%}
+        <li{{ item.attributes }}>{{ item.value }}</li>
+      {%- endfor -%}
+    </{{ list_type }}>
+  {%- else -%}
+    {{- empty -}}
+  {%- endif -%}
 {%- endif %}
diff --git a/core/modules/views/templates/views-view-summary.html.twig b/core/modules/views/templates/views-view-summary.html.twig
index 4d8ed8f..b2ee306 100644
--- a/core/modules/views/templates/views-view-summary.html.twig
+++ b/core/modules/views/templates/views-view-summary.html.twig
@@ -19,14 +19,12 @@
  * @ingroup themeable
  */
 #}
-<div class="item-list">
-  <ul class="views-summary">
-  {% for row in rows %}
-    <li><a href="{{ row.url }}"{{ row.attributes }}>{{ row.link }}</a>
-      {% if options.count %}
-        ({{ row.count }})
-      {% endif %}
-    </li>
-  {% endfor %}
-  </ul>
-</div>
+<ul class="views-summary item-list">
+{% for row in rows %}
+  <li><a href="{{ row.url }}"{{ row.attributes }}>{{ row.link }}</a>
+    {% if options.count %}
+      ({{ row.count }})
+    {% endif %}
+  </li>
+{% endfor %}
+</ul>
diff --git a/core/modules/views_ui/css/views_ui.admin.theme.css b/core/modules/views_ui/css/views_ui.admin.theme.css
index 47909d9..61987e3 100644
--- a/core/modules/views_ui/css/views_ui.admin.theme.css
+++ b/core/modules/views_ui/css/views_ui.admin.theme.css
@@ -1059,11 +1059,11 @@ td.group-title {
 
 /* @group HTML list */
 
-#views-live-preview .view-content > .item-list > ul {
+#views-live-preview .view-content > .item-list {
   list-style-position: outside;
   padding-left: 21px; /* LTR */
 }
-[dir="rtl"] #views-live-preview .view-content > .item-list > ul {
+[dir="rtl"] #views-live-preview .view-content > .item-list {
   padding-left: 0;
   padding-right: 21px;
 }
diff --git a/core/themes/bartik/css/style.css b/core/themes/bartik/css/style.css
index 9deef51..81eb529 100644
--- a/core/themes/bartik/css/style.css
+++ b/core/themes/bartik/css/style.css
@@ -314,11 +314,11 @@ ul.menu li {
 [dir="rtl"] .region-content ol {
   padding: 0 15px 0.25em 0;
 }
-.item-list ul li {
+.item-list li {
   margin: 0;
   padding: 0.2em 0.5em 0 0; /* LTR */
 }
-[dir="rtl"] .item-list ul li {
+[dir="rtl"] .item-list li {
   padding: 0.2em 0 0 0.5em;
 }
 ul.tips {
@@ -482,18 +482,18 @@ h1.site-name {
   margin: 0;
   padding: 0;
 }
-.region-header #block-user-login div.item-list,
+.region-header #block-user-login .item-list,
 .region-header #block-user-login div.description {
   font-size: 0.916em;
   margin: 0;
 }
-.region-header #block-user-login div.item-list {
+.region-header #block-user-login .item-list {
   clear: both;
 }
 .region-header #block-user-login div.description {
   display: inline;
 }
-.region-header #block-user-login .item-list ul {
+.region-header #block-user-login .item-list {
   padding: 0;
   line-height: 1;
 }
diff --git a/core/themes/seven/css/components/menus-and-lists.css b/core/themes/seven/css/components/menus-and-lists.css
index bd2d908..3944026 100644
--- a/core/themes/seven/css/components/menus-and-lists.css
+++ b/core/themes/seven/css/components/menus-and-lists.css
@@ -1,15 +1,15 @@
 /**
  * Menus and lists.
  */
-.item-list ul {
+.item-list {
   list-style-type: disc;
   list-style-image: none;
   margin: 0.25em 0 0.25em 1.5em; /* LTR */
 }
-[dir="rtl"] .item-list ul {
+[dir="rtl"] .item-list {
   margin: 0.25em 1.5em 0.25em 0;
 }
-.item-list ul li,
+.item-list li,
 li.leaf,
 ul.menu li {
   list-style-type: disc;
@@ -18,12 +18,12 @@ ul.menu li {
 ul.menu li {
   margin: 0;
 }
-.item-list ul li.collapsed,
+.item-list li.collapsed,
 ul.menu li.collapsed {
   list-style-image: url(../../../../misc/menu-collapsed.png);
   list-style-type: disc;
 }
-.item-list ul li.expanded,
+.item-list li.expanded,
 ul.menu li.expanded {
   list-style-image: url(../../../../misc/menu-expanded.png);
   list-style-type: circle;
diff --git a/core/themes/seven/css/components/tables.css b/core/themes/seven/css/components/tables.css
index 6292d5b..b6fa282 100644
--- a/core/themes/seven/css/components/tables.css
+++ b/core/themes/seven/css/components/tables.css
@@ -93,7 +93,7 @@ th.active > a:focus:after,
 th.active > a:hover:after {
   border-bottom-color: #008ee6;
 }
-td .item-list ul {
+td .item-list {
   margin: 0;
 }
 td.active {
diff --git a/core/themes/seven/css/components/views-ui.css b/core/themes/seven/css/components/views-ui.css
index ed33366..3f81948 100644
--- a/core/themes/seven/css/components/views-ui.css
+++ b/core/themes/seven/css/components/views-ui.css
@@ -94,7 +94,7 @@ details.fieldset-no-legend {
 /* @group Lists */
 
 .views-admin ul.secondary,
-.views-admin .item-list ul {
+.views-admin .item-list {
   margin: 0;
   padding: 0;
 }
