Is there an elegant way to define orthogonality (and/or angles) without inner products, metrics, or norms? I was wondering if there is an elegant and intrinsic way to define orthogonality on vectors without introducing inner products? Obviously "elegance" is subjective, so I'll try and give a sketch of the type of thing I'm looking for and why.
I'm not looking for an answer which amounts to "define it with an inner product then forget everything but the angles by modding out the lengths of vectors". It would be nice (but not necessary) if the definition never invoked the reals at all, and had a more pure, geometric character, a little closer to Euclid than abstract algebra.
My motivation is in large part that I'm from the physics world, where vectors are often physical, spatial quantities, where inner products depend on our arbitrary choice of units and are thus non-fundamental (although useful, and unique once we do arbitrarily fix our units). In such a context, defining orthogonality in terms of inner products becomes philosophically problematic and unpleasing. Because of this, I would be satisfied with an inner-product-free definition that only works for finite dimensional real vector spaces, but naturally I'd be happy if it extended as far as possible.
In my mind this feels like a natural step between metric notions and topological, in the sense that it's more general and deep than specific metrics, but gives more form and structure to a space than mere topology. Don't take this too seriously, however.
If such a notion could be generalised even further beyond vector spaces, I would be very happy.
 A: It seems you may be looking for something like projective space. This is no longer a vector space, but an inner product exists that has no well defined value other than it either being zero or nonzero.
Projective space is a quotient of a vector space minus the origin that identifies two vectors if they are scalar multiples of each other. In an inner product, scalar multiples preserve orthogonality, but not length. However, if you mod out by scalar multiples the notion of length disappears. The sum of elements also ceases to make sense, but we can still discuss geometry. This is ubiquitous in algebraic geometry, and in many senses projective space is algebraically more well behaved than affine space. Another way to characterize projective space is as the set of lines through the origin in a vector space.
You could also declare that all vectors are the same length. Again we lose the sum, and the geometric object we end up with is the sphere.
You have to lose something if you're not content to simply ignore the length and actually want the concept to no longer make sense, and in these cases you lose the sum. 
A: This is my own idea. It comes from the original meaning of the notion of orthogonality i.e. the notion of right angle and perpendicular lines. Recall that the angle is a right angle iff it is congruent to its supplementary angle. I'll define the notion of angle and congruence of angles in abstract normed vector space. Thus the definition works perfectly fine in $\mathbb{R}^n$. It doesn't involve the inner product.
Let $V$ be normed vector space. Let $\sim$ be a binary relation in $V\setminus\{0\}$ defined $$a\sim a' :\iff \exists_{x>0}a'=xa$$ It can be easily proved that $\sim$ is an equivalence relation. Equivalence classes will be called rays.
An unordered pair $\{A,B\}$ of two rays will be called an angle.
Now an angle $\{A,B\}$ is said to be congruent to an angle $\{C,D\}$ iff $$\|a-b\|=\|c-d\|$$ , where  $a,b,c,d$ are (unique) vectors such that  $$a\in A,b\in B, c\in C, d\in D$$and $$\|a\|=\|b\|=\|c\|=\|d\|=1$$
A vector $a\in V$ is said to be orthogonal to a vector $b\in V$ iff $a=0$ or $b=0$ or $a\neq 0\neq b$ and $\{[a]_{\sim},[b]_{\sim}\}$ is congruent to $\{[-a]_{\sim},[b]_{\sim}\}$.
It seems that in $\mathbb{R}^n$ this definition is equivalent to standard inner product definition. Not sure about other inner product spaces. Besides, I don't know the interpretation of this orthogonality in normed spaces which aren't inner product spaces.
