About English posts in general
StackExchange is a knowledge network of sites about different topics.
As a network, it is possible and even encouraged (via HNQ and featured Meta.SE posts, for example) that users from any given site visit and/or join other sites that may also be of interest to them. And, as such a network where everybody is allowed to roam free, there is one common language that is shared and used by all sites in the network; the network's "native" language, which is to say: English. A common language is necessary for a network to function like such. To have users be able to jump from site to site, to have the same rules for all, to make sharing knowledge easier, to allow question migration, to have CMs be able to interact with any community. The user interface is in English in every SE site. Network-wide announcements are made in English. So, by default, everybody should and does use English to communicate within the network.
The network is huge, though, and so there are indeed some StackExchange sites about topics that are closely related to a language that is not English. Sites about specific languages, like French.SE, Russian.SE, Japanese.SE, Latin.SE; sites about religion, like MiYodeya or Hinduism.SE.
To make discussion of their topics easier, some of these sites also allow questions and answers written in their particular language, like most of the language-related ones; while others do not, and stick to English for questions and answers, like Russian.SE, Mi Yodeya or Hinduism.SE.
Spanish.SE is one of those sites where a different language, besides English, is allowed; namely, Spanish. Being a site about the Spanish language, and with over half a billion potential Spanish-speaking users, it is very convenient for us to allow questions and answers to be made in Spanish, especially the most technical ones which tend to be written by people for whom Spanish is already their native language, but also in general to avoid cluttered posts with lots of quotes and italics and such.
However, that doesn't and mustn't mean that English questions or answers should be frowned upon. Good questions and answers written in English are one of the best ways we have to share our love for Spanish with other users in the network and make them join our community. They are also one of the best ways to make it easier for learners of Spanish as a second language to find answers to their questions when they use a search engine like Google, Bing, DDG or even our own Spanish.SE search box. And, given that we are part of a network and this network's vehicular language is English, we definitely cannot forbid network users from posting in English, as that'd be akin to ostracizing ourselves from the network itself and would probably end up causing issues with mods and CMs.
About answers written in a different language than the question's
As noted before, Spanish.SE is both a site about the Spanish language, and a member of an English-speaking network of sites. As such, it is expected that most of our users will have some degree of knowledge of both English and Spanish. Posting a Spanish answer to an English question or the other way around, then, shouldn't be a problem.
There will be cases where the OP might not understand the answer, though. Whether it is an answer in Spanish to a question in English made by someone who is just learning Spanish, or an answer in English to a question in Spanish made by a native Spanish speaker, the solution is the same both ways: a comment by OP to the answer at hand, saying either "I don't understand, could you please translate?" or "No entiendo, ¿podrías traducir, por favor?"
Such a comment should suffice as a cue for the OAP, or any other user with enough skill, to edit the answer and include a translation.
With such an easy solution, I don't think any kind of down-voting or criticizing is necessary or called for.
If we come across a good quality answer and the only issue we have with it is that it's written in a different language than the question's, we can leave a comment asking if a translation will be provided and offering ourselves to do so, if needed. Or just edit the answer to add our own translation, if one was already requested by OP but never included.
Of course, some people might disagree with this, and not be OK with answers in a different language, and show their disagreement with a downvote. I am OK with this. It's up to the user to decide the reasons to use their downvotes and I'm against chastising them for doing so in ways that we don't like, as long as their reasons show they are voting based on the answer and not on the user (i.e. brigading and the like should not be accepted).
What is not OK is to be disrespectful to a user only because we don't like that they didn't include a translation. Better yet: what is not OK is to be disrespectful to a user, period.
Want to downvote an answer because it's in English and the question is in Spanish? Cool. Want to add a comment explaining why you downvoted it? Nice of you! Just keep it civil.