Issue #23853: More widget refactoring.