diff --git a/runtime/ftplugin/html.vim b/runtime/ftplugin/html.vim
index 5495f85..7736b5b 100644
--- a/runtime/ftplugin/html.vim
+++ b/runtime/ftplugin/html.vim
@@ -3,7 +3,8 @@
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainer:	Dan Sharp
 " Last Change:		2024 Jan 14
-" 			2024 May 24 by Riley Bruins <ribru17@gmail.com> ('commentstring')
+" 2024 May 24 update 'commentstring' option
+" 2025 May 10 add expression folding #17141
 
 if exists("b:did_ftplugin")
   finish
@@ -56,5 +57,52 @@
   let b:undo_ftplugin ..= " | unlet! b:browsefilter b:html_set_browsefilter"
 endif
 
+if has("folding") && get(g:, "html_expr_folding", 0)
+  function! HTMLTagFold() abort
+    if empty(get(b:, "foldsmap", {}))
+      if empty(get(b:, "current_syntax", ''))
+	return '0'
+      else
+	let b:foldsmap = htmlfold#MapBalancedTags()
+      endif
+    endif
+
+    return get(b:foldsmap, v:lnum, '=')
+  endfunction
+
+  setlocal foldexpr=HTMLTagFold()
+  setlocal foldmethod=expr
+  let b:undo_ftplugin ..= " | setlocal foldexpr< foldmethod<"
+
+  if !get(g:, "html_expr_folding_without_recomputation", 0)
+    augroup htmltagfold
+      autocmd! htmltagfold
+      autocmd TextChanged,InsertLeave <buffer> let b:foldsmap = {}
+    augroup END
+
+    " XXX: Keep ":autocmd" last in "b:undo_ftplugin" (see ":help :bar").
+    let b:undo_ftplugin ..= " | silent! autocmd! htmltagfold * <buffer>"
+  endif
+endif
+
 let &cpo = s:save_cpo
 unlet s:save_cpo
+
+" See ":help vim9-mix".
+if !has("vim9script")
+  finish
+endif
+
+if exists("*g:HTMLTagFold")
+  def! g:HTMLTagFold(): string
+    if empty(get(b:, "foldsmap", {}))
+      if empty(get(b:, "current_syntax", ''))
+	return '0'
+      else
+	b:foldsmap = g:htmlfold#MapBalancedTags()
+      endif
+    endif
+
+    return get(b:foldsmap, v:lnum, '=')
+  enddef
+endif
