Testing the button element's semantics when paired with different CSS properties/values

Note: Talkback has been renamed to Android Accessibility Suite and is referred to as "AAS" in these test results.

Review the test page on codePen.

all: unset
Visual Style
Re-styled to resemble body text, however still retains inline-block. Continues to receive keyboard focus and default or author set focused styles.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Note: unsupported CSS for IE, so no visual change
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
Note: unsupported CSS for Edge, so no visual change
appearance: none
Visual Style
Styling is not actually removed, but rather reverts to a more utilitarian button style (in the browsers that support the property). Each browser treats this style with some variation, but they all continue to look like buttons.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
display: contents
Visual Style
Mostly re-styled to resemble and flow like body text, but retains default button font styling. (more on display: contents)Loses the ability to be focused by Tab key.
macOS Safari 12
Exposed as "text".
VoiceOver announces element as "text content".
macOS Firefox 62.0.3
Exposed as "text leaf".
macOS Chrome (latest)
No accessibility node exposed.
iOS 11.4.1 Safari
Exposed as a "Static Text"
VoiceOver announces no role.
Android Chrome
AAS announces no role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "editable text"
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Note: display: contents is unsupported in IE.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "text"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
Note: display: contents is unsupported in Edge.
display: block
Visual Style
No change to the styling of the button.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
display: inline
Visual Style
No change to the styling of the button.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
display: flex
Visual Style
No change to the styling of the button.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
display: table
Visual Style
Aside from Edge alone adding a slightly thicker border to the button, no other changes to the styling of the button.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
display: inline-flex
Visual Style
No change to the styling of the button.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
display: inline-grid
Visual Style
No change to the styling of the button.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
display: grid
Visual Style
No change to the styling of the button.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".
display: list-item
Visual Style
With the exception of Firefox macOS (where a bullet was added inside the border of the button), no change to the styling of the button.
macOS Safari 12
Exposed as a "button"
VoiceOver announces button role.
macOS Firefox 62.0.3
Exposed as "pushbutton".
macOS Chrome (latest)
Exposed as a "button".
iOS 11.4.1 Safari
Exposed as a "button"
VoiceOver announces button role.
Android Chrome
AAS announces button role.
Windows 10 Firefox 64.0a1
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 IE11
Exposed as MSAA "push button"
JAWS 2018 announces button role.
Windows 10 Chrome (latest)
Exposed as MSAA/IA2 "push button"
NVDA 2018.2.1 + JAWS 2018 announce button role.
Windows 10 Edge (latest)
Exposed as a "button".