Devtools: a11y fixes for Clear Storage view

Accessibility testing revealed the following within the tool:
1. an empty heading for clear storage button section

This change adds:
1. hide section heading element if title is empty
2. group the check boxes underneath Application/Storage/Cache sections to deliver a better experience for keyboard/SR users
3. add test coverage

Bug: 963183

Change-Id: Ic7ceae7fa513fe959aa45e041c7064e650afa720
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1601573
Reviewed-by: Erik Luo <[email protected]>
Commit-Queue: Junyi Xiao <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#662881}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 60d984765b727f562c59add521b1f3779183e4e6
diff --git a/front_end/resources/ClearStorageView.js b/front_end/resources/ClearStorageView.js
index 9b06019..77e8e63 100644
--- a/front_end/resources/ClearStorageView.js
+++ b/front_end/resources/ClearStorageView.js
@@ -52,16 +52,19 @@
 
     const application = this._reportView.appendSection(Common.UIString('Application'));
     this._appendItem(application, Common.UIString('Unregister service workers'), 'service_workers');
+    application.markFieldListAsGroup();
 
     const storage = this._reportView.appendSection(Common.UIString('Storage'));
     this._appendItem(storage, Common.UIString('Local and session storage'), 'local_storage');
     this._appendItem(storage, Common.UIString('IndexedDB'), 'indexeddb');
     this._appendItem(storage, Common.UIString('Web SQL'), 'websql');
     this._appendItem(storage, Common.UIString('Cookies'), 'cookies');
+    storage.markFieldListAsGroup();
 
     const caches = this._reportView.appendSection(Common.UIString('Cache'));
     this._appendItem(caches, Common.UIString('Cache storage'), 'cache_storage');
     this._appendItem(caches, Common.UIString('Application cache'), 'appcache');
+    caches.markFieldListAsGroup();
 
     SDK.targetManager.observeTargets(this);
   }