In German you would say that things
have a colour, not that they are a colour.
Your wording might be a bit confusing. Yes, exactly, you use "haben" with the word "Farbe" specifically, but in response to "Welche Farbe hat der Rock?" you can say "Der Rock ist schwarz."
No, I'm fairly certain you can only use the verb "sein" if you're not using "Farbe". (Der Rock hat schwarz? sounds awkward to me)
No, because "schwarz" is an adjective and "haben" can't be followed by an adjective
You could say that but the meaning would not be the skirt is black. I it would be the skirt as back in it.
You're right, in this subject is "der Rock" the subject.
In German sentences, you can switch the position of the subject and the object, and in yes-no questions the verb goes first.
You can view this as "Der Rock hat welche Farbe" -> "Welche Farbe hat der Rock"
It would be difficult to answer correctly when one hears a totally different sentence as I did.
This is not correct in English. Translating word-for-word will often produce wrong answers!
I have this answer and it is accepted by Duolingo. Duolingo wants us to translate word-for-word as much as possible.
If you're meaning that "what colour does the skirt have" should be accepted, that's just silly. It has no meaning in English whatsoever. Translation is about making sense of another language, not transcribing the literal meaning. That's why idioms exist. You can say "what colour does the skirt have in it", meaning it has more than one. You cannot say, in English, what colour does the skirt have.