While the accepted answer seems to be "don't ask" -- the researcher in me wants to improve the corpus of knowledge in the world.
If you were hypothetically providing a quality of service that would genuinely be improved be asking for this information, a way could be as follows:
- Optional
- Checkbox
What's in the dropdowncheckbox list is what makes it interesting: Whereas the 3 major "race" descriptors are serious trigger words, the "subrace" descriptors have a level of granularity that makes it more interesting (without using the C, M or N words) and potentially less judgmental.
Aryan
Semitic
Hamitic
African Negro
Khoikhoi
Melanesian
Negrito
Australoid
Dravida & Sinhalese
North Mongol
Chinese & Indochinese
Japanese & Korean
Tibetan
Malay
Polynesian
Maori
Micronesian
Eskimo
American
Also this level of granularity, being more technical implies that it will be used for a technical purpose.
Moreover perhaps while someone is a/antipathetic to listing their race (eg. "don't label me [asian|black|white]"), they may feel a sentiment closer to cultural pride regarding their subrace.
People are generally obsessed with themselves and may not even know what sub-race they are yet have a curiosity, so in that spirit provide the information.
Also the time to ask is not at signup -- that's asking too much for no return.
The time to as is the first time that the user makes a request to your system for what ever service you provide (diagnosis or whatever). This both:
- confirms that you're asking for technical reasons.
- is asking at a time when a service is expected to be returned.