You can validate all required fields by utilizing inner_html() function and checking whether aria-required="true" (most-used required identificator) inside the html for those elements:

page.goto('some_form_page')
# Do not fill out any fields/checkboxed/radiobuttons/etc.
page.get_by_role("button", name="Submit")
expect(page.get_by_text("A value is required").first).to_be_visible()
# if no error messages display, use time.wait(1)
required_fields = [page.get_by_role("radiogroup", name="Required asterisk"),
                   page.get_by_role("combobox", name="Classification").locator('xpath=..')]
for i in required_fields:
    assert 'aria-required="true"' in i.locator('xpath=..').inner_html()

Also, don’t forget to validate the page doesn’t have more required elements than needed.

For that, run through every tag in the page’s html and get all that contain aria-disabled="true"

tag_list = [x for x in page.content().split('<') if 'aria-required="true"' in x and 'aria-disabled="true"' not in x]
assert len(tag_list) == 2

Make sure you include 'aria-disabled="true"' not in x in the list comprehension, as some elements are required but might be disabled