diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml
index 09764c2f3..13ee2baaa 100644
--- a/.haml-lint_todo.yml
+++ b/.haml-lint_todo.yml
@@ -1,20 +1,16 @@
 # This configuration was generated by
 # `haml-lint --auto-gen-config`
-# on 2024-01-08 14:02:57 -0500 using Haml-Lint version 0.53.0.
+# on 2024-01-09 10:00:31 -0500 using Haml-Lint version 0.53.0.
 # The point is for the user to remove these configuration records
 # one by one as the lints are removed from the code base.
 # Note that changes in the inspected code, or installation of new
 # versions of Haml-Lint, may require this file to be generated again.
 
 linters:
-  # Offense count: 10
+  # Offense count: 5
   LineLength:
     exclude:
       - 'app/views/admin/roles/_form.html.haml'
       - 'app/views/auth/registrations/edit.html.haml'
       - 'app/views/auth/registrations/new.html.haml'
       - 'app/views/media/player.html.haml'
-      - 'app/views/settings/applications/_fields.html.haml'
-      - 'app/views/settings/imports/index.html.haml'
-      - 'app/views/settings/preferences/appearance/show.html.haml'
-      - 'app/views/settings/preferences/other/show.html.haml'
diff --git a/app/views/settings/applications/_fields.html.haml b/app/views/settings/applications/_fields.html.haml
index 29e2bcb5a..ed97e880f 100644
--- a/app/views/settings/applications/_fields.html.haml
+++ b/app/views/settings/applications/_fields.html.haml
@@ -1,11 +1,17 @@
 .fields-group
-  = f.input :name, wrapper: :with_label, label: t('activerecord.attributes.doorkeeper/application.name')
+  = f.input :name,
+            label: t('activerecord.attributes.doorkeeper/application.name'),
+            wrapper: :with_label
 
 .fields-group
-  = f.input :website, wrapper: :with_label, label: t('activerecord.attributes.doorkeeper/application.website')
+  = f.input :website,
+            label: t('activerecord.attributes.doorkeeper/application.website'),
+            wrapper: :with_label
 
 .fields-group
-  = f.input :redirect_uri, wrapper: :with_block_label, label: t('activerecord.attributes.doorkeeper/application.redirect_uri'), hint: t('doorkeeper.applications.help.redirect_uri')
+  = f.input :redirect_uri,
+            label: t('activerecord.attributes.doorkeeper/application.redirect_uri'), hint: t('doorkeeper.applications.help.redirect_uri'),
+            wrapper: :with_block_label
 
   %p.hint= t('doorkeeper.applications.help.native_redirect_uri', native_redirect_uri: content_tag(:code, Doorkeeper.configuration.native_redirect_uri)).html_safe
 
@@ -15,4 +21,15 @@
     %span.hint= t('simple_form.hints.defaults.scopes')
 
   - Doorkeeper.configuration.scopes.group_by { |s| s.split(':').first }.each_value do |value|
-    = f.input :scopes, label: false, hint: false, collection: value.sort, wrapper: :with_block_label, include_blank: false, label_method: ->(scope) { safe_join([content_tag(:samp, scope, class: class_for_scope(scope)), content_tag(:span, t("doorkeeper.scopes.#{scope}"), class: 'hint')]) }, selected: f.object.scopes.all, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
+    = f.input :scopes,
+              as: :check_boxes,
+              collection_wrapper_tag: 'ul',
+              collection: value.sort,
+              hint: false,
+              include_blank: false,
+              item_wrapper_tag: 'li',
+              label_method: ->(scope) { safe_join([content_tag(:samp, scope, class: class_for_scope(scope)), content_tag(:span, t("doorkeeper.scopes.#{scope}"), class: 'hint')]) },
+              label: false,
+              required: false,
+              selected: f.object.scopes.all,
+              wrapper: :with_block_label
diff --git a/app/views/settings/featured_tags/index.html.haml b/app/views/settings/featured_tags/index.html.haml
index 387eb290e..22f918012 100644
--- a/app/views/settings/featured_tags/index.html.haml
+++ b/app/views/settings/featured_tags/index.html.haml
@@ -11,7 +11,9 @@
   %p.lead= t('featured_tags.hint_html')
 
   .fields-group
-    = f.input :name, wrapper: :with_block_label, hint: safe_join([t('simple_form.hints.featured_tag.name'), safe_join(@recently_used_tags.map { |tag| link_to("##{tag.display_name}", settings_featured_tags_path(featured_tag: { name: tag.name }), method: :post) }, ', ')], ' ')
+    = f.input :name,
+              hint: safe_join([t('simple_form.hints.featured_tag.name'), safe_join(@recently_used_tags.map { |tag| link_to("##{tag.display_name}", settings_featured_tags_path(featured_tag: { name: tag.name }), method: :post) }, ', ')], ' '),
+              wrapper: :with_block_label
 
   .actions
     = f.button :button, t('featured_tags.add_new'), type: :submit
diff --git a/app/views/settings/imports/index.html.haml b/app/views/settings/imports/index.html.haml
index 5f7950b59..d5ca252dc 100644
--- a/app/views/settings/imports/index.html.haml
+++ b/app/views/settings/imports/index.html.haml
@@ -3,13 +3,29 @@
 
 = simple_form_for @import, url: settings_imports_path do |f|
   .field-group
-    = f.input :type, as: :grouped_select, collection: { constructive: %i(following bookmarks lists), destructive: %i(muting blocking domain_blocking) }, wrapper: :with_block_label, include_blank: false, label_method: ->(type) { I18n.t("imports.types.#{type}") }, group_label_method: ->(group) { I18n.t("imports.type_groups.#{group.first}") }, group_method: :last, hint: t('imports.preface')
+    = f.input :type,
+              as: :grouped_select,
+              collection: { constructive: %i(following bookmarks lists), destructive: %i(muting blocking domain_blocking) },
+              group_label_method: ->(group) { I18n.t("imports.type_groups.#{group.first}") },
+              group_method: :last,
+              hint: t('imports.preface'),
+              include_blank: false,
+              label_method: ->(type) { I18n.t("imports.types.#{type}") },
+              wrapper: :with_block_label
 
   .fields-row
     .fields-group.fields-row__column.fields-row__column-6
-      = f.input :data, as: :file, wrapper: :with_block_label, hint: t('simple_form.hints.imports.data')
+      = f.input :data,
+                as: :file,
+                hint: t('simple_form.hints.imports.data'),
+                wrapper: :with_block_label
     .fields-group.fields-row__column.fields-row__column-6
-      = f.input :mode, as: :radio_buttons, collection: Import::MODES, label_method: ->(mode) { safe_join([I18n.t("imports.modes.#{mode}"), content_tag(:span, I18n.t("imports.modes.#{mode}_long"), class: 'hint')]) }, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
+      = f.input :mode,
+                as: :radio_buttons,
+                collection_wrapper_tag: 'ul',
+                collection: Import::MODES,
+                item_wrapper_tag: 'li',
+                label_method: ->(mode) { safe_join([I18n.t("imports.modes.#{mode}"), content_tag(:span, I18n.t("imports.modes.#{mode}_long"), class: 'hint')]) }
 
   .actions
     = f.button :button, t('imports.upload'), type: :submit
diff --git a/app/views/settings/migration/redirects/new.html.haml b/app/views/settings/migration/redirects/new.html.haml
index 370087879..731acb9db 100644
--- a/app/views/settings/migration/redirects/new.html.haml
+++ b/app/views/settings/migration/redirects/new.html.haml
@@ -15,7 +15,11 @@
 
   .fields-row
     .fields-row__column.fields-group.fields-row__column-6
-      = f.input :acct, wrapper: :with_block_label, input_html: { autocapitalize: 'none', autocorrect: 'off' }, label: t('simple_form.labels.account_migration.acct'), hint: t('simple_form.hints.account_migration.acct')
+      = f.input :acct,
+                hint: t('simple_form.hints.account_migration.acct'),
+                input_html: { autocapitalize: 'none', autocorrect: 'off' },
+                label: t('simple_form.labels.account_migration.acct'),
+                wrapper: :with_block_label
 
     .fields-row__column.fields-group.fields-row__column-6
       - if current_user.encrypted_password.present?
diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml
index 11fa2bfc4..76cd4381d 100644
--- a/app/views/settings/preferences/appearance/show.html.haml
+++ b/app/views/settings/preferences/appearance/show.html.haml
@@ -7,13 +7,28 @@
 = simple_form_for current_user, url: settings_preferences_appearance_path, html: { method: :put, id: 'edit_user' } do |f|
   .fields-row
     .fields-group.fields-row__column.fields-row__column-6
-      = f.input :locale, collection: ui_languages, wrapper: :with_label, include_blank: false, label_method: ->(locale) { native_locale_name(locale) }, selected: I18n.locale, hint: false
+      = f.input :locale,
+                collection: ui_languages,
+                hint: false,
+                include_blank: false,
+                label_method: ->(locale) { native_locale_name(locale) },
+                selected: I18n.locale,
+                wrapper: :with_label
     .fields-group.fields-row__column.fields-row__column-6
-      = f.input :time_zone, wrapper: :with_label, collection: ActiveSupport::TimeZone.all.map { |tz| ["(GMT#{tz.formatted_offset}) #{tz.name}", tz.tzinfo.name] }, hint: false
+      = f.input :time_zone,
+                collection: ActiveSupport::TimeZone.all.map { |tz| ["(GMT#{tz.formatted_offset}) #{tz.name}", tz.tzinfo.name] },
+                hint: false,
+                wrapper: :with_label
 
   .fields-group
     = f.simple_fields_for :settings, current_user.settings do |ff|
-      = ff.input :theme, collection: Themes.instance.names, label_method: ->(theme) { I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_theme'), include_blank: false, hint: false
+      = ff.input :theme,
+                 collection: Themes.instance.names,
+                 hint: false,
+                 include_blank: false,
+                 label_method: ->(theme) { I18n.t("themes.#{theme}", default: theme) },
+                 label: I18n.t('simple_form.labels.defaults.setting_theme'),
+                 wrapper: :with_label
 
   - unless I18n.locale == :en
     .flash-message.translation-prompt
@@ -25,11 +40,17 @@
     %p.hint= t 'appearance.advanced_web_interface_hint'
 
     .fields-group
-      = ff.input :'web.advanced_layout', wrapper: :with_label, hint: false, label: I18n.t('simple_form.labels.defaults.setting_advanced_layout')
+      = ff.input :'web.advanced_layout',
+                 hint: false,
+                 label: I18n.t('simple_form.labels.defaults.setting_advanced_layout'),
+                 wrapper: :with_label
     %h4= t 'appearance.animations_and_accessibility'
 
     .fields-group
-      = ff.input :'web.use_pending_items', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_use_pending_items'), hint: I18n.t('simple_form.hints.defaults.setting_use_pending_items')
+      = ff.input :'web.use_pending_items',
+                 hint: I18n.t('simple_form.hints.defaults.setting_use_pending_items'),
+                 label: I18n.t('simple_form.labels.defaults.setting_use_pending_items'),
+                 wrapper: :with_label
 
     .fields-group
       = ff.input :'web.auto_play', wrapper: :with_label, recommended: true, label: I18n.t('simple_form.labels.defaults.setting_auto_play_gif')
@@ -52,10 +73,21 @@
     %h4= t 'appearance.sensitive_content'
 
     .fields-group
-      = ff.input :'web.display_media', collection: %w(default show_all hide_all), label_method: ->(item) { t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label, label: I18n.t('simple_form.labels.defaults.setting_display_media')
+      = ff.input :'web.display_media',
+                 as: :radio_buttons,
+                 collection_wrapper_tag: 'ul',
+                 collection: %w(default show_all hide_all),
+                 hint: false,
+                 item_wrapper_tag: 'li',
+                 label_method: ->(item) { t("simple_form.hints.defaults.setting_display_media_#{item}") },
+                 label: I18n.t('simple_form.labels.defaults.setting_display_media'),
+                 wrapper: :with_floating_label
 
     .fields-group
-      = ff.input :'web.use_blurhash', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_use_blurhash'), hint: I18n.t('simple_form.hints.defaults.setting_use_blurhash')
+      = ff.input :'web.use_blurhash',
+                 hint: I18n.t('simple_form.hints.defaults.setting_use_blurhash'),
+                 label: I18n.t('simple_form.labels.defaults.setting_use_blurhash'),
+                 wrapper: :with_label
 
     .fields-group
       = ff.input :'web.expand_content_warnings', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_expand_spoilers')
diff --git a/app/views/settings/preferences/other/show.html.haml b/app/views/settings/preferences/other/show.html.haml
index 5228ce119..e2888f721 100644
--- a/app/views/settings/preferences/other/show.html.haml
+++ b/app/views/settings/preferences/other/show.html.haml
@@ -9,24 +9,53 @@
 
   = f.simple_fields_for :settings, current_user.settings do |ff|
     .fields-group
-      = ff.input :aggregate_reblogs, wrapper: :with_label, recommended: true, label: I18n.t('simple_form.labels.defaults.setting_aggregate_reblogs'), hint: I18n.t('simple_form.hints.defaults.setting_aggregate_reblogs')
+      = ff.input :aggregate_reblogs,
+                 hint: I18n.t('simple_form.hints.defaults.setting_aggregate_reblogs'),
+                 label: I18n.t('simple_form.labels.defaults.setting_aggregate_reblogs'),
+                 recommended: true,
+                 wrapper: :with_label
 
     %h4= t 'preferences.posting_defaults'
 
     .fields-row
       .fields-group.fields-row__column.fields-row__column-6
-        = ff.input :default_privacy, collection: Status.selectable_visibilities, wrapper: :with_label, include_blank: false, label_method: ->(visibility) { safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') }, required: false, hint: false, label: I18n.t('simple_form.labels.defaults.setting_default_privacy')
+        = ff.input :default_privacy,
+                   collection: Status.selectable_visibilities,
+                   hint: false,
+                   include_blank: false,
+                   label_method: ->(visibility) { safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') },
+                   label: I18n.t('simple_form.labels.defaults.setting_default_privacy'),
+                   required: false,
+                   wrapper: :with_label
 
       .fields-group.fields-row__column.fields-row__column-6
-        = ff.input :default_language, collection: [nil] + filterable_languages, wrapper: :with_label, label_method: ->(locale) { locale.nil? ? I18n.t('statuses.default_language') : native_locale_name(locale) }, required: false, include_blank: false, hint: false, label: I18n.t('simple_form.labels.defaults.setting_default_language')
+        = ff.input :default_language,
+                   collection: [nil] + filterable_languages,
+                   hint: false,
+                   include_blank: false,
+                   label_method: ->(locale) { locale.nil? ? I18n.t('statuses.default_language') : native_locale_name(locale) },
+                   label: I18n.t('simple_form.labels.defaults.setting_default_language'),
+                   required: false,
+                   wrapper: :with_label
 
     .fields-group
-      = ff.input :default_sensitive, wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_default_sensitive'), hint: I18n.t('simple_form.hints.defaults.setting_default_sensitive')
+      = ff.input :default_sensitive,
+                 hint: I18n.t('simple_form.hints.defaults.setting_default_sensitive'),
+                 label: I18n.t('simple_form.labels.defaults.setting_default_sensitive'),
+                 wrapper: :with_label
 
   %h4= t 'preferences.public_timelines'
 
   .fields-group
-    = f.input :chosen_languages, collection: filterable_languages, wrapper: :with_block_label, include_blank: false, label_method: ->(locale) { native_locale_name(locale) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
+    = f.input :chosen_languages,
+              as: :check_boxes,
+              collection_wrapper_tag: 'ul',
+              collection: filterable_languages,
+              include_blank: false,
+              item_wrapper_tag: 'li',
+              label_method: ->(locale) { native_locale_name(locale) },
+              required: false,
+              wrapper: :with_block_label
 
   .actions
     = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml
index 5f9613c93..b7b0a0da9 100644
--- a/app/views/settings/profiles/show.html.haml
+++ b/app/views/settings/profiles/show.html.haml
@@ -33,7 +33,10 @@
   .fields-row
     .fields-row__column.fields-row__column-6
       .fields-group
-        = f.input :avatar, wrapper: :with_block_label, input_html: { accept: Account::Avatar::IMAGE_MIME_TYPES.join(',') }, hint: t('simple_form.hints.defaults.avatar', dimensions: '400x400', size: number_to_human_size(Account::Avatar::LIMIT))
+        = f.input :avatar,
+                  hint: t('simple_form.hints.defaults.avatar', dimensions: '400x400', size: number_to_human_size(Account::Avatar::LIMIT)),
+                  input_html: { accept: Account::Avatar::IMAGE_MIME_TYPES.join(',') },
+                  wrapper: :with_block_label
 
     .fields-row__column.fields-row__column-6
       .fields-group
@@ -46,7 +49,10 @@
   .fields-row
     .fields-row__column.fields-row__column-6
       .fields-group
-        = f.input :header, wrapper: :with_block_label, input_html: { accept: Account::Header::IMAGE_MIME_TYPES.join(',') }, hint: t('simple_form.hints.defaults.header', dimensions: '1500x500', size: number_to_human_size(Account::Header::LIMIT))
+        = f.input :header,
+                  hint: t('simple_form.hints.defaults.header', dimensions: '1500x500', size: number_to_human_size(Account::Header::LIMIT)),
+                  input_html: { accept: Account::Header::IMAGE_MIME_TYPES.join(',') },
+                  wrapper: :with_block_label
 
     .fields-row__column.fields-row__column-6
       .fields-group
diff --git a/app/views/settings/two_factor_authentication/confirmations/new.html.haml b/app/views/settings/two_factor_authentication/confirmations/new.html.haml
index 43830ac27..0b8278a10 100644
--- a/app/views/settings/two_factor_authentication/confirmations/new.html.haml
+++ b/app/views/settings/two_factor_authentication/confirmations/new.html.haml
@@ -12,7 +12,12 @@
       %samp.qr-alternative__code= @new_otp_secret.scan(/.{4}/).join(' ')
 
   .fields-group
-    = f.input :otp_attempt, wrapper: :with_label, hint: t('otp_authentication.code_hint'), label: t('simple_form.labels.defaults.otp_attempt'), input_html: { autocomplete: 'off' }, required: true
+    = f.input :otp_attempt,
+              hint: t('otp_authentication.code_hint'),
+              input_html: { autocomplete: 'off' },
+              label: t('simple_form.labels.defaults.otp_attempt'),
+              required: true,
+              wrapper: :with_label
 
   .actions
     = f.button :button, t('otp_authentication.enable'), type: :submit