[proofplan]
We prove first that the Killing-orthogonal complement is stable under the adjoint action of $\mathfrak g$, hence is an ideal. The key computation uses the [invariance of the Killing form](/theorems/3808) and the fact that $\mathfrak a$ is an ideal. We then show that $\mathfrak a \cap \mathfrak a^\perp = 0$ by applying Cartan's criterion to this intersection, and the direct-sum decomposition follows from nondegeneracy and dimension counting. Finally, the commutator $[\mathfrak a,\mathfrak a^\perp]$ lies in both summands, so it must vanish.
[/proofplan]
[step:Verify the invariance identity for the Killing form]
For $u,v,w \in \mathfrak g$, let
\begin{align*}
\operatorname{ad}: \mathfrak g &\to \mathfrak{gl}(\mathfrak g) \\
x &\mapsto \operatorname{ad}_x
\end{align*}
be the adjoint representation, where $\operatorname{ad}_x(y) := [x,y]$ for $y \in \mathfrak g$. The Killing form is
\begin{align*}
\kappa_{\mathfrak g}(x,y) := \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_y).
\end{align*}
Using $\operatorname{ad}_{[u,v]} = \operatorname{ad}_u \circ \operatorname{ad}_v - \operatorname{ad}_v \circ \operatorname{ad}_u$ and cyclicity of trace on the finite-dimensional $F$-[vector space](/page/Vector%20Space) $\mathfrak g$, we obtain
\begin{align*}
\kappa_{\mathfrak g}([u,v],w)
&= \operatorname{tr}\big((\operatorname{ad}_u \circ \operatorname{ad}_v - \operatorname{ad}_v \circ \operatorname{ad}_u)\circ \operatorname{ad}_w\big) \\
&= \operatorname{tr}(\operatorname{ad}_u \circ \operatorname{ad}_v \circ \operatorname{ad}_w)
- \operatorname{tr}(\operatorname{ad}_v \circ \operatorname{ad}_u \circ \operatorname{ad}_w) \\
&= \operatorname{tr}(\operatorname{ad}_u \circ \operatorname{ad}_v \circ \operatorname{ad}_w)
- \operatorname{tr}(\operatorname{ad}_u \circ \operatorname{ad}_w \circ \operatorname{ad}_v) \\
&= \operatorname{tr}\big(\operatorname{ad}_u \circ (\operatorname{ad}_v \circ \operatorname{ad}_w - \operatorname{ad}_w \circ \operatorname{ad}_v)\big) \\
&= \operatorname{tr}(\operatorname{ad}_u \circ \operatorname{ad}_{[v,w]}) \\
&= \kappa_{\mathfrak g}(u,[v,w]).
\end{align*}
Thus $\kappa_{\mathfrak g}$ is invariant:
\begin{align*}
\kappa_{\mathfrak g}([u,v],w)=\kappa_{\mathfrak g}(u,[v,w]).
\end{align*}
[/step]
[step:Show that $\mathfrak a^\perp$ is stable under brackets with $\mathfrak g$]
Let $x \in \mathfrak a^\perp$, let $g \in \mathfrak g$, and let $a \in \mathfrak a$. We prove that $[g,x] \in \mathfrak a^\perp$ by testing it against the arbitrary element $a$.
Using invariance of $\kappa_{\mathfrak g}$ twice and symmetry of the Killing form, we compute
\begin{align*}
\kappa_{\mathfrak g}([g,x],a)
&= \kappa_{\mathfrak g}(g,[x,a]) \\
&= \kappa_{\mathfrak g}([x,a],g) \\
&= \kappa_{\mathfrak g}(x,[a,g]).
\end{align*}
Since $\mathfrak a \trianglelefteq \mathfrak g$, we have $[a,g] \in \mathfrak a$. Since $x \in \mathfrak a^\perp$, this gives
\begin{align*}
\kappa_{\mathfrak g}(x,[a,g])=0.
\end{align*}
Therefore $\kappa_{\mathfrak g}([g,x],a)=0$ for every $a \in \mathfrak a$, so $[g,x] \in \mathfrak a^\perp$. Hence
\begin{align*}
[\mathfrak g,\mathfrak a^\perp] \subset \mathfrak a^\perp,
\end{align*}
and $\mathfrak a^\perp \trianglelefteq \mathfrak g$ is an ideal.
[guided]
We want to prove that $\mathfrak a^\perp$ is an ideal. By definition, this means that whenever $x \in \mathfrak a^\perp$ and $g \in \mathfrak g$, the bracket $[g,x]$ again lies in $\mathfrak a^\perp$. Since $\mathfrak a^\perp$ is defined by orthogonality to every element of $\mathfrak a$, the correct test is to pair $[g,x]$ with an arbitrary $a \in \mathfrak a$ under the Killing form.
Let $x \in \mathfrak a^\perp$, $g \in \mathfrak g$, and $a \in \mathfrak a$. The invariance identity proved above gives
\begin{align*}
\kappa_{\mathfrak g}([g,x],a)
&= \kappa_{\mathfrak g}(g,[x,a]).
\end{align*}
This expression does not yet use the fact that $x$ is orthogonal to $\mathfrak a$, because $g$ is not assumed to lie in $\mathfrak a^\perp$. We therefore move the bracket once more. By symmetry of the Killing form and then invariance,
\begin{align*}
\kappa_{\mathfrak g}(g,[x,a])
&= \kappa_{\mathfrak g}([x,a],g) \\
&= \kappa_{\mathfrak g}(x,[a,g]).
\end{align*}
Now the ideal hypothesis is used: since $\mathfrak a \trianglelefteq \mathfrak g$, the bracket $[a,g]$ belongs to $\mathfrak a$. Since $x \in \mathfrak a^\perp$, the definition of $\mathfrak a^\perp$ gives
\begin{align*}
\kappa_{\mathfrak g}(x,[a,g])=0.
\end{align*}
Thus
\begin{align*}
\kappa_{\mathfrak g}([g,x],a)=0
\end{align*}
for every $a \in \mathfrak a$. This is exactly the statement that $[g,x] \in \mathfrak a^\perp$. Therefore $\mathfrak a^\perp$ is closed under brackets with all elements of $\mathfrak g$, so $\mathfrak a^\perp$ is an ideal of $\mathfrak g$.
[/guided]
[/step]
[step:Prove that the two ideals have zero intersection]
Let
\begin{align*}
\mathfrak b := \mathfrak a \cap \mathfrak a^\perp.
\end{align*}
Since both $\mathfrak a$ and $\mathfrak a^\perp$ are ideals of $\mathfrak g$, their intersection $\mathfrak b$ is an ideal of $\mathfrak g$.
We claim that $\mathfrak b=0$. For $x,y \in \mathfrak b$, the adjoint maps $\operatorname{ad}_x$ and $\operatorname{ad}_y$ preserve $\mathfrak b$, because $\mathfrak b$ is an ideal. Let $\kappa_{\mathfrak b}: \mathfrak b \times \mathfrak b \to F$ denote the Killing form of $\mathfrak b$. Since $x,y \in \mathfrak b \subset \mathfrak a$ and also $y \in \mathfrak b \subset \mathfrak a^\perp$, we have
\begin{align*}
\kappa_{\mathfrak g}(x,y)=0.
\end{align*}
For an ideal $\mathfrak b \trianglelefteq \mathfrak g$, the restriction of $\kappa_{\mathfrak g}$ to $\mathfrak b \times \mathfrak b$ equals $\kappa_{\mathfrak b}$: indeed, for $x,y \in \mathfrak b$, the induced endomorphism of $\mathfrak g/\mathfrak b$ by $\operatorname{ad}_x \circ \operatorname{ad}_y$ is zero, because $\operatorname{ad}_y(\mathfrak g) \subset \mathfrak b$. Hence the trace on $\mathfrak g$ equals the trace on the invariant subspace $\mathfrak b$. Therefore
\begin{align*}
\kappa_{\mathfrak b}(x,y)=\kappa_{\mathfrak g}(x,y)=0
\end{align*}
for every $x,y \in \mathfrak b$.
Thus the Killing form of $\mathfrak b$ is identically zero. By Cartan's solvability criterion in characteristic $0$ (citing a result not yet in the wiki: [Cartan's criterion for solvability](/theorems/3811)), $\mathfrak b$ is solvable. Since $\mathfrak b$ is a solvable ideal of the semisimple Lie algebra $\mathfrak g$, semisimplicity forces $\mathfrak b=0$. Hence
\begin{align*}
\mathfrak a \cap \mathfrak a^\perp = 0.
\end{align*}
[/step]
[step:Use nondegeneracy and dimension counting to obtain the direct sum]
Because $\mathfrak g$ is semisimple over a field of characteristic $0$, its Killing form $\kappa_{\mathfrak g}$ is nondegenerate by Cartan's criterion for semisimplicity (citing a result not yet in the wiki: Cartan's criterion for semisimplicity via the Killing form). For a nondegenerate [bilinear form](/page/Bilinear%20Form) on the finite-dimensional vector space $\mathfrak g$, the orthogonal complement of the subspace $\mathfrak a$ satisfies
\begin{align*}
\dim_F \mathfrak a + \dim_F \mathfrak a^\perp = \dim_F \mathfrak g.
\end{align*}
Together with $\mathfrak a \cap \mathfrak a^\perp = 0$, this implies that the addition map
\begin{align*}
\mathfrak a \oplus \mathfrak a^\perp &\to \mathfrak g \\
(u,v) &\mapsto u+v
\end{align*}
is injective and has domain dimension equal to $\dim_F \mathfrak g$. Hence it is an isomorphism of $F$-vector spaces, and therefore
\begin{align*}
\mathfrak g = \mathfrak a \oplus \mathfrak a^\perp.
\end{align*}
Since both summands are ideals, this is a direct-sum decomposition by ideals.
[/step]
[step:Show that the two summands commute]
Since $\mathfrak a \trianglelefteq \mathfrak g$, we have
\begin{align*}
[\mathfrak a,\mathfrak a^\perp] \subset \mathfrak a.
\end{align*}
Since $\mathfrak a^\perp \trianglelefteq \mathfrak g$, we also have
\begin{align*}
[\mathfrak a,\mathfrak a^\perp] \subset \mathfrak a^\perp.
\end{align*}
Therefore
\begin{align*}
[\mathfrak a,\mathfrak a^\perp] \subset \mathfrak a \cap \mathfrak a^\perp = 0.
\end{align*}
Thus
\begin{align*}
[\mathfrak a,\mathfrak a^\perp]=0.
\end{align*}
This proves all asserted conclusions.
[/step]