Huw Davies (@huw) commented about dlls/uiautomationcore/uia_provider.c:
+ + if (!msaa_acc_prop_match(acc, acc2, &matched)) + goto exit; + + variant_init_i4(&cid, CHILDID_SELF); + hr = IAccessible_get_accName(acc, cid, &name[0]); + if (SUCCEEDED(hr)) + { + hr = IAccessible_get_accName(acc2, cid, &name[1]); + if (SUCCEEDED(hr)) + { + if ((!(!name[0] && !name[1]) && (!name[0] || !name[1])) || + ((name[0] && name[1]) && wcscmp(name[0], name[1]))) + matched = FALSE; + else + matched = TRUE; This `if` condition is challenging to decipher. Perhaps it would be simpler comparing `!!name[0]` with `!!name[1]`, or breaking this out into a series of `if` statements.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/216#note_1801